spark-sql

打印 上一主题 下一主题

主题 1797|帖子 1797|积分 5391

数据加载与生存:
通用方式:
SparkSQL 提供了通用的生存数据和数据加载的方式。

加载数据:
spark.read.load 是加载数据的通用方法。如果读取不同格式的数据,可以对不同的数据格式进行设定。
spark.read.format("…")[.option("…")].load("…")

我们前面都是使用 read API 先把文件加载到 DataFrame 然后再查询,其实,我们也可以直接在文件上进行查询: 文件格式.`文件路径`
spark.sql("select * from json.’ Spark-SQL/input/user.json’").show
 
生存数据:
df.write.save 是生存数据的通用方法。如果生存不同格式的数据,可以对不同的数据格式进行设定。
df.write.format("…")[.option("…")].save("…")
生存操纵可以使用 SaveMode, 用来指明如何处理数据,使用 mode()方法来设置。

Parquet
Spark SQL 的默认数据源为 Parquet 格式。Parquet 是一种能够有效存储嵌套数据的列式
存储格式。数据源为 Parquet 文件时,Spark SQL 可以方便的执行全部的操纵,不需要使用 format。修改设置项 spark.sql.sources.default,可修改默认数据源格式。

JSON
Spark SQL 能够自动推测 JSON 数据集的结构,并将它加载为一个 Dataset[Row]. 可以
通过 SparkSession.read.json()去加载 JSON 文件。留意:Spark 读取的 JSON 文件不是传统的 JSON 文件,每一行都应该是一个 JSON 串
 
CSV
Spark SQL 可以设置 CSV 文件的列表信息,读取 CSV 文件,CSV 文件的第一行设置为
数据列。
 
MySQL
Spark SQL 可以通过 JDBC 从关系型数据库中读取数据的方式创建 DataFrame,通过对
DataFrame 一系列的盘算后,还可以将数据再写回关系型数据库中。
IDEA通过JDBC对MySQL进行操纵:

  • 导入依赖


  • 读取数据

3写入数据

Spark-SQL毗连Hive
Apache Hive 是 Hadoop 上的 SQL 引擎,Spark SQL 编译时可以包罗 Hive 支持,也可以不包罗。包罗 Hive 支持的 Spark SQL 可以支持 Hive 表访问、UDF (用户自定义函数)、Hive 查询语言(HQL)等。需要夸大的一点是,如果要在 Spark SQL 中包罗Hive 的库,并不需要事先安装 Hive。一样寻常来说,最好还是在编译 Spark SQL 时引入 Hive支持,这样就可以使用这些特性了。
使用方式分为内嵌Hive、外部Hive、Spark-SQL CLI、Spark beeline 以及代码操纵。

内嵌的 HIVE
如果使用 Spark 内嵌的 Hive, 则什么都不用做, 直接使用即可。但是在实际生产活动当中,险些没有人去使用内嵌Hive这一模式。、

运行Spark-SQL CLI
Spark SQL CLI 可以很方便的在本地运行 Hive 元数据服务以及从下令行执行查询使命。在 Spark 目次下执行如下下令启动 Spark SQL CLI,直接执行 SQL 语句,雷同于 Hive 窗口。
操纵步骤:

  • 将mysql的驱动放入jars/当中;
  • 将hive-site.xml文件放入conf/当中;
  • 运行bin/目次下的spark-sql.cmd 或者打开cmd,在
D:\spark\spark-3.0.0-bin-hadoop3.2\bin当中直接运行spark-sql

可以直接运行SQL语句,如下所示:

5)代码操纵Hive
1.    导入依赖。
可能出现下载jar包的问题:

3.    代码实现。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表