九十四、Spark-SparkSQL(整合Hive)

举报
托马斯-酷涛 发表于 2022/05/26 00:50:49 2022/05/26
【摘要】 读取本地文件上传至Hive数据仓库 pom.xml <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.12</artifact...

读取本地文件上传至Hive数据仓库

pom.xml


  
  1. <dependency>
  2. <groupId>org.apache.spark</groupId>
  3. <artifactId>spark-hive_2.12</artifactId>
  4. <version>${spark.version}</version>
  5. </dependency>

启动Hive的metastore(RunJar进程)

 nohup /home/hive/bin/hive --service metastore &

 

代码


  
  1. package org.example.SQL
  2. import org.apache.log4j.{Level, Logger}
  3. import org.apache.spark.sql.SparkSession
  4. object sql_Hive {
  5. def main(args: Array[String]): Unit = {
  6. Logger.getLogger("org").setLevel(Level.ERROR)
  7. //增加参数配置 和 HiveSQL语法支持
  8. val spark: SparkSession = SparkSession.builder().appName("test").master("local[*]")
  9. .config("spark.sql.warehouse.dir", "hdfs://192.168.231.105:8020/user/hive/warehouse")//指定Hive数据库在HDFS上的位置
  10. .config("hive.metastore.uris", "thrift://192.168.231.105:9083")//hive 的 RunJar进程
  11. .enableHiveSupport() //开启对hive语法的支持
  12. .getOrCreate()
  13. spark.sql("show databases").show()
  14. spark.sql("show tables").show()
  15. spark.sql("create table person(id int,name string,age int) row format delimited fields terminated by ' '")
  16. spark.sql("load data local inpath 'file:///E:/data/person.txt' into table person") //本地文件
  17. spark.sql("show tables").show()
  18. spark.sql("select * from person").show()
  19. }
  20. }

本地文件

打印


  
  1. +---------+
  2. |namespace|
  3. +---------+
  4. | db|
  5. | default|
  6. +---------+

  
  1. +--------+-------------+-----------+
  2. |database| tableName|isTemporary|
  3. +--------+-------------+-----------+
  4. | default| cat| false|
  5. | default| cat4| false|
  6. | default| cat_group| false|
  7. | default| cat_group1| false|
  8. | default| cat_group2| false|
  9. | default| goods| false|
  10. | default|position_hive| false|
  11. | default| tuomasi| false|
  12. +--------+-------------+-----------+

  
  1. +--------+-------------+-----------+
  2. |database| tableName|isTemporary|
  3. +--------+-------------+-----------+
  4. | default| cat| false|
  5. | default| cat4| false|
  6. | default| cat_group| false|
  7. | default| cat_group1| false|
  8. | default| cat_group2| false|
  9. | default| goods| false|
  10. | default| person| false|
  11. | default|position_hive| false|
  12. | default| tuomasi| false|
  13. +--------+-------------+-----------+

  
  1. +---+--------+---+
  2. | id| name|age|
  3. +---+--------+---+
  4. | 1|zhangsan| 20|
  5. | 2| lisi| 29|
  6. | 3| wangwu| 25|
  7. | 4| zhaoliu| 30|
  8. | 5| tianqi| 35|
  9. | 6| kobe| 40|
  10. +---+--------+---+

HDFS查看

Hive数据仓库查看


  
  1. hive> show tables;
  2. OK
  3. cat
  4. cat4
  5. cat_group
  6. cat_group1
  7. cat_group2
  8. goods
  9. person
  10. position_hive
  11. tuomasi
  12. Time taken: 0.128 seconds, Fetched: 9 row(s)
  13. hive> select * from person;
  14. OK
  15. 1 zhangsan 20
  16. 2 lisi 29
  17. 3 wangwu 25
  18. 4 zhaoliu 30
  19. 5 tianqi 35
  20. 6 kobe 40
  21. Time taken: 2.889 seconds, Fetched: 6 row(s)

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/124074464

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。