麻绳先生

做一些记录性的工作

(no title)

SparkSQL介绍

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了两个编程抽象:DataSet和DataFrame。

Hive SQL转化为MapReduce,然后提交给集群执行,但是MapReduce计算模型执行效率太低,于是诞生了Spark SQL。

将Spark SQL转化为RDD,然后提交给集群执行,效率很高!

RDD DataSet DataFrame

DataFrame是一个分布式数据容器,更像传统关系数据库的二维表。DataSet是DataFrame API最新扩展,是强类型的数据结构,类似于类的概念。

SparkSQL编程

SparkSession

SparkSession是SparkContext和HiveContext的结合,实际计算由SparkContext负责。

val df = spark.read.json(filepath)

org.sparl.sql.DataFrame=[age:bigint,name:string]

df.show

df.createTempView()

spark.sql(“select * from student”).show

df.createGlobalTempView()

DSL风格语法

df.printSchema

df.select(“name”).show()

import spark,implicits._

DataSet基本操作

df.rdd

自定义用户聚合函数,有强类型和弱类型。