Spark SQL是处理结构化的数据,可以存储在二维表中,类似数据库中的表一样存储数据
Spark1.x
val sqlContext = 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中
val rdd:RDD[Person] = ....
//将RDD转换成DataFrame
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()
Spark2.x
val spark = SparkSession.builder().appName("a").master("local[*]").getOrCreate()
//创建DF
val df = spark.createDataFrame(RDD[Row], schema)
//DSL 和 SQL
df.createTempView("v_user")
//执行SQL
val result:DataFrame = spark.sql("select * from t_user")
//执行action
result.show()
//
原文地址:https://www.cnblogs.com/cindy-zl24/p/11621540.html