-- 必须使用 Hive 引擎进行数据重刷
INSERT OVERWRITE TABLE <表名> PARTITION(分区表达式)
SELECT
FROM <表名>
WHERE 分区表达式
Hive 表有多种存储格式,TextFile、ORC、RCFile等等。TextFile 的存储格式是未经压缩的纯文本格式,按指定分隔符对字段进行划分。当数据本身包含了分隔符,就会导致数据错位问题,所以使用TextFile存储数据有较大的安全隐患如果表本身的存储格式已经是TextFile,想要转换成其他格式该如何操作?本教程适合于Hive分区表,如果Hive表不是分区表,直接修改存储格式会导致数据读取失败!一、查看表格式通过建表语句,查看表本身的存储格式命令如下:SHOW CREATE T
TextFile文件不支持块压缩,默认格式,数据不做压缩,磁盘开销大,数据解析开销大。这边不做深入介绍。
2、RCFile
Record Columnar的缩写。是Hadoop中第一个列文件格式。能够很好的压缩和快速的查询性能,但是不支持模式演进。通常
写操作比较慢,比非列形式的文件格式需要更多的内存空间和计算量。
RCFile是一种行列存储相结合的存储方式。首先,其将数据按行分块,保证同一个record在一个块
要把关系型数据库应用迁移到Hadoop上,你该何去何从?本书介绍了Apache Hive,它是基于Hadoop的数据仓库架构。通过本书,读者可以很快学会如何使用Hive的SQL方言——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大型数据集。
本书以实际案例为主线,详细介绍如何在用户环境下安装和配置Hive,并对Hadoop和MapReduce的各项技术进行概要介绍,同时演示Hive在Hadoop生态系统中是如何工作的。在本书中,读者还可以看到众多的实际使用场景,包括企业如何使用Hive解决了涉及PB级数据的问题。
· 使用Hive创建、修改和删除数据库、表、视图、函数和索引。
· 从文件到外部数据库,自定义数据存储格式和存储选项。
· 将数据载入表中以及从表中抽取数据,并使用查询、分组、过滤、连接和其他常规查询方法。
· 获得创建用户自定义函数(UDF)的最佳方法。
· 了解应该使用的Hive模式以及应该避免的反模式。
· 将Hive和其他数据处理程序进行整合。
· 对于NoSQL数据库和其他数据存储使用存储控制器。
· 学习在亚马逊弹性MapReduce上执行Hive的正反两方面信息。
Java中存储数据(变量、对象、数组、集合),数据都是保存在内存中,属于瞬时状态数据
文件(File)存储数据,保存在硬盘上,属于持久化状态存储
1.2 以上存储方式存在哪些缺点?
程序停止,数据就没了。
文件存储的数据:没有数据类型的区分
没有访问安全限制
没有备份、恢复机制。
二、 数据库
2.1 概念
数据库是 "按照数据结构来组织、存储、管理数据的仓库"。是一个可以长期存储在计算机内的、有组织的、有共享的、可以统一管理的数据集合
【bigint】
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
【int】
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
一、parquet格式的数据
parquet是一种列式存储格式的文件类型。存储时可以通过牛X的压缩算法节省存储空间,读取数据时只需要读取所需的列,提高读取性能。
二、JSON格式的数据
三、通过JDBC读取数据库中的数据
四、Hive中的数据
所需的pom依赖如下:
<dependencies>
<!-- spark核心包 -->
<dependency>...
17.Hive中HQL的基本语法(一)
18.Hive中HQL的基本语法(二)
19.Hive中order by、sort by、distribute by与cluster by的使用
20.Hive中分析函数与窗口函数
21.Hive中UDF的介绍
22.Hive中使用自定义UDF实现日期格式转换
23. HiveServer2的介绍及三种连接方式
24.Hive元数据、fetch task和严格模式的介绍
第3章:Sqoop Sqoop及用户行为分析案例
25.CDH版本框架的介绍
26. CDH版本框架的环境部署
27.Sqoop的介绍及其实现原理
28.Sqoop的安装部署及连接测试
29.Sqoop将MySQL数据导入到HDFS(一)
30.Sqoop将MySQL数据导入到HDFS(二)
31.Sqoop中的增量导入与Sqoop job
32.Sqoop将MySQL数据导入Hive表中
33.Sqoop的导出及脚本中使用的方式
34.案例分析-动态分区的实现
35.案例分析-源表的分区加载创建
36.案例分析-指标分析使用Sqoop导出
第4章:Hive复杂用户行为案例分析及优化
37.自动批量加载数据到hive
38.Hive表批量加载数据的脚本实现(一)
39.Hive表批量加载数据的脚本实现(二)
40.HIve中的case when、cast及unix_timestamp的使用
41.复杂日志分析-需求分析
42.复杂日志分析-需求字段讲解及过滤
43.复杂日志分析-字段提取及临时表的创建
44.复杂日志分析-指标结果的分析实现
45.Hive中数据文件的存储格式介绍及对比
46.常见的压缩格式及MapReduce的压缩介绍
47.Hadoop中编译配置Snappy压缩
48.Hadoop及Hive配置支持snappy压缩
49.Hive中的常见调优
50.Hive中的数据倾斜及解决方案-三种join方式
51.Hive中的数据倾斜及解决方案-group by
52.Hive中使用正则加载数据
53. Hive中使用Python脚本进行预处理
第5章:Zeus任务资源调度工具
54.资源任务调度框架介绍
55.企业中常见的任务调度框架
56.Zeus的介绍及基本实现原理
57.Zeus安装部署-基本环境配置
58.Zeus安装部署-配置文件的修改
59.Zeus安装部署-编译打包
60.Zeus平台的调度使用
61.Zeus平台实现任务调度应用(一)
62.Zeus平台实现任务调度应用(二)
63.Zeus平台实现任务调度应用(三)
好的,你是想知道如何在Spark中整合Hive吗?Spark可以与Hive集成,这意味着可以在Spark应用程序中使用Hive数据仓库中的表格。这样,你就可以使用Spark SQL API查询和处理Hive表格中的数据。
以下是在Spark中整合Hive的步骤:
1. 确保在Spark中启用了Hive支持。你可以通过在SparkSession中设置`enableHiveSupport()`选项来启用Hive支持。
```scala
val spark = SparkSession.builder()
.appName("Hive example")
.enableHiveSupport()
.getOrCreate()
2. 将Hive相关的JAR文件添加到Spark应用程序的classpath中。这些JAR文件通常位于Hive安装目录的lib文件夹中。
```scala
spark.sparkContext.addJar("/path/to/hive/lib/hive-exec.jar")
spark.sparkContext.addJar("/path/to/hive/lib/hive-metastore.jar")
3. 在Hive中创建表格,并将其加载到Hive数据仓库中。
4. 在Spark应用程序中使用Spark SQL API查询Hive表格。
例如,以下是一个在Spark中查询Hive表格的示例代码片段:
```scala
val df = spark.sql("SELECT * FROM my_table")
df.show()
在代码中,我们使用`spark.sql()`方法查询Hive表格。Spark会自动将查询转换为HiveQL,并将其发送到Hive数据仓库执行。查询结果将返回到Spark应用程序中,可以将其加载到DataFrame中并使用`show()`方法显示。