SparkSql总结

Spark Sql:
Spark sql中的基本数据结构为:DataFrame和DataSet。
创建DataFrame对象的方式:
1.使用spark.read._
2.rdd和schema模式组合形成
spark sql的基本编程的流程为:
0.创建DataFrame的Schema模式
0.0:通过StructType创建模式:
StructType(
List(
StructField(列名, 数据类型, 是否可以为空)
StructField(列名, 数据类型, 是否可以为空)
....
)
)
例:val schema = StructType(
  List(
StructField("id", IntegerType,true),
StructField("name", StringType,true),
StructField("age", IntegerType,true)
  )
)

0.1:通过case class创建模式:
case class 模式名(列名1:类型,列名2:类型,.......)
例:case class Student("stuID":Int, "stuName":String, "stuAge":Int)

1.获取SparkSession对象:
SparkSession是spark2.0中替代sparkContext的方式,SparkSession中包括了SparkContext
例:
val spark = SparkSession.builder().appName("student").master("local")
2.通过SparkSession对象创建数据对应的rdd
例:
val dataRDD = spark.sparkContext.textFile(Filepath)
3.将rdd转换为DataFrame对象或者DataSet对象:
import spark.sparkContext.implict._ //通过隐式转换
3.1将rdd与创建的schema组合:
case class创建模式下的组合转换:
val dataDF = dataRDD.map(x => Student(x(0).toInt,x(1).toString, x(3).toInt)).toDF()
StructType创建模式下的组合转换:
a.先把rdd变为Row行
dataRow = dataRDD.map(x => Row(x(0).toInt, x(1).toString, x(2).toInt))
b.创建DataFrame对象
val dataDF = dataRow.createDataFrame(dataRow, schema)
4.创建DataFrame对象对应的视图:
dataDF.createOrReplaceTempView(表名)
5.在视图上进行sql操作。
val result = spark.sql("select * from 表名")
result.show() //显示结果

6关闭SparkSession:

                        spark.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值