SparkSQL 读写_Hive_读取 Hive 表 | 学习笔记

简介: 快速学习 SparkSQL 读写_Hive_读取 Hive 表

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段SparkSQL 读写_Hive_读取 Hive 表】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12060


SparkSQL 读写_Hive_读取 Hive 表

 

内容介绍:

一、相关命令

二、实操

三、误区

 

一、相关命令

要使用 SparkSQL 语句访问 Hive 表仅需要三个命令即可完成,如下:

scala> spark.sql("use spark integrition")

scala> val resultDF = spark.sql("select * from student limit 10") scala>resultDF.show()

值得注意的是,之前的课程中整合了 SparkSQL 和 Hive,但是这种整合只作用在集群当中,也就是说只有使用 SparkShell 或者 SparkSubmit 时候才能享受整合的便利。

换言之,对于写本地程序的场景,这种整合是无法使用的。因为我们之前学习过的整合,是把配置文件拷贝到 Spark 的对应的 conf 目录下,因此必须要在集群当中执行才能够享受这种整合的便利。

 

二、实操

1、开启 SparkShell

打开代码编辑窗口,输入 exit 退出 Hive,并清空之前的屏幕,进行代码编辑:

cd /export/servers/spark

//进入 spark

bin/spark-shell --master spark://node01:7077

//使用 bin/spark-shell 命令运行,并指定其运行位置为集群 node01:7077。

//但以上方式往往会导致卡顿,因此可以选择直接使用 local 的形式运行

bin/spark-shell --master local [6]

开启 spark-shell ,待运行正常后,可以发现其读取了很多 Hive 的 config。接下来直接进行 SparkSQL 查询。

2、查询命令

之前我们学习使用 SQL 查询时,应先把 DateFrame 或者 DateSite 注册为一张空白表。但是现在可以直接执行命令

scala> spark.sql("use spark01")

//使用之前创建的数据库,显示结果为 res0:org.apache.spark.sql.DateFrame = [ ]

scala> spark.sql("select * from student limit 10")

//从 student 中查询,且仅限制显示的数据量为 100 条,结果显示 res1:org.apache.spark.sql.DateFrame = [name:string,age:

int ... ]more field,即创建了变量 res1,其类型为 DateFrame 。

scala>res1.show()

//进行相应的查看和显示,通过运行最终显示结果无误。

image.png

在使用体验上,比直接在 Hive 窗口里执行的速度要稍快一些,对于更大的数据量执行速度相对而言会更快。

 

三、误区

使用 scala> spark.sql("use spark01")命令写入 SQL 语句时,有人认为该语句在默认情况下不会立刻执行,因为有可能是 transfomation。

image.png

但这启示是一种不太准确的说法,与之相反,该语句(包括后面的命令语句)会立刻执行。

可以理解为只有通过 show 方法才能最终获取且显示数据,实际操作中不需要每执行一次 SQL 就执行一次 show 方法,而只有在需要获取数据的时执行一次 show 方法即可,且前面的 SQL 语句也会默认执行。

相关文章
|
3月前
|
SQL 存储 HIVE
Hive中的表是如何定义的?请解释表的结构和数据类型。
Hive中的表是如何定义的?请解释表的结构和数据类型。
33 0
|
4月前
|
SQL 消息中间件 数据处理
DataX读取Hive Orc格式表丢失数据处理记录
DataX读取Hive Orc格式表丢失数据处理记录
128 0
|
4月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
96 0
|
6天前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
16 0
|
1月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
2月前
|
SQL 消息中间件 Kafka
Flink部署问题之hive表没有数据如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
3月前
|
SQL 分布式计算 关系型数据库
Sqoop数据导入到Hive表的最佳实践
Sqoop数据导入到Hive表的最佳实践
|
4月前
|
SQL 存储 HIVE
❤️Hive的基本知识(二)Hive中的各种表❤️
❤️Hive的基本知识(二)Hive中的各种表❤️
29 0
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
259 0
|
4月前
|
SQL 存储 关系型数据库
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
90 0