Spark SQL是處理結構化的數據,能夠存儲在二維表中,相似數據庫中的表同樣存儲數據sql
Spark1.x數據庫
val sqlContext = new SparkContext(conf)app
val sqlContext = new SQLContext(sc)ui
//將RDD和Schema信息關聯到一塊兒,1,RDD和case class 2,RDD和StructTypespa
//case class Person將RDD中的數據轉換成case class 屬性相對應的類型,而後設置到case class中get
val rdd:RDD[Person] = ....spark
//將RDD轉換成DataFrameio
val df = rdd.toDFast
//對df進行操做(1,直接使用DataFrame上的算子DSL。2,寫SQL)class
//將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()
//