sparksql:
-
Spark SQL是Spark处理数据的一个模块
-
专门用来处理结构化数据的模块,像json,parquet,avro,csv。
DataFrames API:
与RDD相似,增加了数据结构scheme描述信息部分。
比RDD更丰富的算子,更有利于提升执行效率、减少数据读取、执行计划优化。
DataSets API:
集成了RDD强类型和DataFrames结构化的优点
面向DS编程,可以与其它Spark应用代码无缝集成。
SparkSQl特点:
-
可以利用SQL、DataFrams API、DataSets API或其它语言调用的基于sparksql模块计算,均是sparkcore执行引擎,其对计算的表达是独立的,即开发人员可以轻松在不同API之间切换实现相同的功能。
-
也可以通过命令行、JDBC、ODBC的方式来操作SparkSQL,方便其它数据平台、BI平台使用SparkSql模块。
-
在spark应用程序开发中,可以无缝使用SparkSql操作数据。
-
可以直接使用Hive表格数据。与Hive的兼容性极好:它复用了Hive的前端(去掉驱动mapreduce执行任务的部分)和元数据,因此可以拿过来hivesql的东西在sparksql上运行即可。并不是100%完全兼容,但绝大多数情况下,不需要改动,或只需要极小的改动,比如个别版本不支持直接insert into table xxx values(xxx…)的插入数据的方式
-
SparkSql的应用中,sql是一个重要方面,但不局限制sql。
sparksql操作代码:
1.SparkSql Shell操作SparkSql:
//直接输入spark-sql+自己想要添加的参数即可,与spark-shell相似
spark-sql [options]
//如指定运行模式
spark-sql local[*]
//如指定运行spark webui服务的端口,解决多人共用一个入口机时候的进入时候报port bind exception的问题
spark-sql --conf spark.ui.port=4075
//也可以用于似于hive -e的方式,直接直接一段sparksql代码
spark-sql –e “sparksql code”
2.DataFrames API 操作 SparkSql
与之前的Sbt构建SparkWordCount步骤完全一样。
环境配置
<dependency