案例_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
......

......

抱歉,只有登录会员才可浏览!会员登录


《Spark原理深入与编程实战》