您的位置 首页 java

Spark学习(十二):应用库之Spark SQL

Spark学习(十二):应用库之Spark SQL

1. 应用库 Spark SQL

(1)SparkSql概念简介:

spark sql是为了处理结构化数据的一个spark 模块。不同于spark rdd的基本API,spark sql接口更多关于数据结构本身与执行计划等更多信息。在spark内部,sql sql利用这些信息去更好地进行优化。

(2)Spark SQL的特点:

1、支持多种数据源:Hive、RDD、Parquet、JSON、 JDBC 等。

2、多种性能优化技术:in-memory columnar storage、byte-code generation、cost model动态评估等。

3、组件扩展性:对于 sql 的语法解析器、分析器以及优化器,用户都可以自己重新开发,并且动态扩展。

(3)Spark SQL的代码实现方式:

有如下几种方式执行spark sql:SQL,DataFramesAPI与Datasets API。这些之前已经介绍。

(4)Spark SQL的起始点:SQLContext:

spark sql所有功能的入口是SQLContext类,或者SQLContext的子类。为了创建一个基本的SQLContext,需要一个SparkContext。核心代码如下:

// 得到spark的上下文

JavaSparkContext jsc = new JavaSparkContext(sparkConf);

// 通过spark的基础上下文得到sparksql的上下文

SQLContext sqlContext = new SQLContext(jsc);

2. Spark SQL的Java风格的代码案例

案例介绍:

读取一个存储在 hdfs 中的json文件,通过Spark SQL的dataframe操作,读取文件内容,并注册一个临时的表,基于这个临时表,利用spark sql的DataFrame对临时表进行sql操作,并将sql的结果打印在控制台上。

编码步骤:

1) 在linux上创建一个json文件people.json,文件内容如下:

{

“people”: [

{ “name”: “shu1”, “age”:11 },

{ “name”: “shu2”, “age”:22 },

{ “name”: “shu3”, “age”:33 }

]

}

2)将文件上传到hdfs上,切换到hdfs的bin目录下利用以下命令:

hadoop fs –put 本地文件位置 hdfs的目录

3)创建工程sparkst,将工程的jdk置为1.8,并且引入如下jar包:

spark-assembly-1.6.2-hadoop2.6.0.jar

此包可以在spark的安装目录的lib子目录下找到,找到后引入到eclipse中。

4)建立包com.gongyunit.sparkst

5)在该包下创建类TestSparkSql,具体代码如下:

Spark学习(十二):应用库之Spark SQL

6) 将sparkst工程打成jar包,上传到spark所在的服务器的某一目录下,这里以在spark的安装目录的code子目录下为例。

7)然后执行如下命令,执行该jar包:

spark-submit –master spark:// ip :7077 –executor-memory 500m –class com.gongyunit.sparkst. TestSparkSql ./code/sparkst.jar hdfs:// ip :9000/spark/people.json

补充:实际操作是要讲ip换成你的实际spark的所在ip地址

文章来源:智云一二三科技

文章标题:Spark学习(十二):应用库之Spark SQL

文章地址:https://www.zhihuclub.com/189277.shtml

关于作者: 智云科技

热门文章

网站地图