Spark 1.x
//spark sql 用来处理结构化数据
类似数据库中的表一样存储数据
Spark1.x
val sc =new SparkContext(conf)
val sqlContext=new SQLContext(sc)
//将RDD和schema信息关联到一起,
1.RDD和case class
2.RDD和StructType
//case class Person将RDD中的数据转换成case class 属性相对应的类型,然后设置到case class中
3.val rdd:RDD[Person]=...
//将RDD转换成DataFrame
4.val df =rdd.toDF
//对df进行操作(1.直接使用DataFrame上的算子DSL. 2写SQL)
//将df注册成临时表
df.registerTempTable("t_person")
//执行SQL
val result :DataFrame=sqlContext.sql("SELECT * FROM t_person ...")
result.show()
Spark 2.x
//Spark2.x
val spark=SparkSession.builder()
.appName("")
.master("local[*]")
.getOrCreat()
//创建DF
val df =spark.createDataFrame(RDD[Row],schema)
//DSL 和SQL
df.createTempView("v_user")
//执行Sql
val result :DataFrame=spark.sql("SELECT *