案例_Spark SQL实现数据ETL到Hive ODS

Spark SQL还支持读取和写入存储在Apache Hive中的数据。Spark支持两种SQL方言:Spark的SQL方言和Hive查询语言(HQL)。Spark SQL支持HiveQL语法,同时支持Hive SerDes和UDF,可以访问现有的Hive仓库。

同时Spark SQL支持各种数据源,如文件数据源、JDBC数据源等。所以我们可以结合Spark SQL和Hive,很容易地实现数据的ETL操作。接下来,我们将通过示例演示如何通过Spark SQL实现ETL任务,将数据分别从文件或MySQL中抽取到Hive数据仓库的ODS层叠 (数据贴源层)中。

在本案例中,我们将学习到如下内容:

  • Spark SQL读写Hive的API;
  • 实现从数据文件到Hive ODS的ETL任务;
  • 实现从MySQL到Hive ODS的ETL任务;
  • Spark整合Hive数据仓库的环境配置;
  • IDEA中Spark读写Hive数仓的开发配置。

Spark SQL读写Hive的API介绍

读取Hive表数据

可以使用SparkSession或DataFrameReader的table()方法从一个Hive metastore的注册表中加载一个DataFrame。

例如,我们使用table方法加载Hive表test中的数据:

val df = spark.read.table("test")
df.show

或者:

val df = spark.table("wc")
df.show

写数据到Hive表

将DataFrame/Dataset保存到Hive表中,使用DataFrameWriter的saveAsTable()方法,它会将DataFrame数据保存到Hive表中,并在Hive metastore中注册。

例如:

df.write.saveAsTable("test")

使用saveAsTable()方法时,如果Hive表不存在,这会自动创建该Hive表。

默认情况下,如果不指定自定义表路径的话,Spark将把数据写到warehouse目录下的默认表路径。当删除表时,默认的表路径也将被删除。

实现从数据文件到Hive ODS的ETL任务

在我们的PBLP平台下,有一个北京地铁刷卡数据集metro.dat,包含北京地铁某一天用户刷卡数据。该数据位于PBLP平台的如下位置:~/dat ......

注:本文引用自 案例_Spark SQL实现数据ETL到Hive ODS
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值