首页 理论教育 SparkSQL操作Hive的示例

SparkSQL操作Hive的示例

时间:2023-07-02 理论教育 版权反馈
【摘要】:在目前企业级Spark大数据开发中,大多数情况下都是采用Hive来作为数据仓库的。Spark提供了对Hive的支持,Spark通过HiveContext可以直接操作Hive中的数据。图3-3 选择JAR file图3-4 指定JAR文件导出的路径将SparkSQL OnHive.JAR包复制到/Home/Document/SparkApps/目录下,如图3-5所示。图3-5 复制JAR文件4.编辑脚本并运行代码在Linux系统中运行Spark-Submit时,如果不编写脚本,每次都要在Linux提示符中输入Spark-Submit运行的参数及相应的JAR包,调测不是很方便。

SparkSQL操作Hive的示例

在目前企业级Spark大数据开发中,大多数情况下都是采用Hive来作为数据仓库的。Spark提供了对Hive的支持,Spark通过HiveContext可以直接操作Hive中的数据。基于HiveContext,我们可以使用sql/hql两种方式来编写SQL语句对Hive进行操作,包括:创建表、删除表、往表中导入数据,以及对表中的数据进行CRUD(增、删、改、查)操作。下面就开始动手实战。

本案例使用Scala语言开发,在Spark中使用Hive数据库,通过HiveContext使用Join基于Hive中的两张表(人员信息表、人员分数表)进行关联,查询大于90分的人的姓名、分数、年龄。演示了对Hive的常用操作(例如删除表、新建表、加载表数据、保存表数据),然后打包递交到Spark集群中运行。具体实现如下:

1.准备数据

在/home/Document/resource目录下,创建两个文件:people.txt和peoplescores.txt,peo-ple.txt文件是人员信息表,包括人员姓名和年龄信息;Peoplescores.txt是人员分数表,包括人员姓名和分数信息。

Michael 29

Andy 30

Justin 19

Peoplescorees.txt的文件内容如下:

Michael 99

Andy 97

Justin 68

2.代码实现

以下代码实现在Hive中新建表以及加载表数据,使用Join将人员信息表、人员分数表进行关联,查询大于90分的人的姓名、分数、年龄。

978-7-111-59197-9-Chapter03-14.jpg

978-7-111-59197-9-Chapter03-15.jpg

978-7-111-59197-9-Chapter03-16.jpg

通过saveAsTable创建一张Hive Managed Table,表(peopleinformationresult),peoplein-formationresult表数据的元数据和数据即将放的位置都是由Hive数据仓库进行管理的,当删除该表的时候,数据也会一起被删除(磁盘上的数据不再存在)。

978-7-111-59197-9-Chapter03-17.jpg

3.打成JAR包

之前我们在Eclipse中进行了编码,在本地运行通过后,需要将代码打成JAR包,然后将JAR包上传到Spark集群中运行。

单击鼠标右键,选择export命令,选择JAR file,然后点击Next按钮,如图3-3所示。

选择Browse按钮指定JAR导出的路径,如图3-4所示。(www.xing528.com)

978-7-111-59197-9-Chapter03-18.jpg

图3-3 选择JAR file

978-7-111-59197-9-Chapter03-19.jpg

图3-4 指定JAR文件导出的路径

将SparkSQL OnHive.JAR包复制到/Home/Document/SparkApps/目录下,如图3-5所示。

978-7-111-59197-9-Chapter03-20.jpg

图3-5 复制JAR文件

4.编辑脚本并运行代码

在Linux系统中运行Spark-Submit时,如果不编写脚本,每次都要在Linux提示符中输入Spark-Submit运行的参数及相应的JAR包,调测不是很方便。因此,我们编写脚本文件,将Spark-Submit的相关内容编写在wordcount.sh脚本文件中,wordcount.sh脚本可以放在Linux自定义的目录下(例如/usr/local/wordcount/),并且通过chmod u+x wordcount.sh赋予word-count.sh可执行权限。这样运行Spark应用程序,每次只要运行wordcount.sh就可以了。

编辑wordcount.sh脚本如下:

978-7-111-59197-9-Chapter03-21.jpg

启动Hive的metastore步骤如下:

978-7-111-59197-9-Chapter03-22.jpg

运行上述编辑过的脚本,命令行如下:

[root@Master SparkApps]#./wordcount.sh

输出结果如下:

978-7-111-59197-9-Chapter03-23.jpg

5.查询执行结果

上述代码执行之后,可以在Hive中查询执行结果。各类查询命令行及结果如下:

978-7-111-59197-9-Chapter03-24.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈