Spark SQL DataFrame RDD
DataFrame interoperating with RDDs
- DataFrame interoperating with RDDs
- Spark SQL支援兩種方式將既有的RDD轉換成DataFrame:
Inferring the Schema Using Reflection
- Inferring the Schema Using Reflection
- Spark SQL中的Sacla interface支持將包含Case class的RDD自動轉換成DataFrame
- Case class定義table的schema
- Case class中的參數將會透過reflection變成Dataframe的column名稱與類型
- Case class可以包涵巢狀或者複雜的類型
- RDD透過隱式轉換(implicitly converted)變成Dataframe,並且註冊成為一個Table
- Table可以使用SQL語法來進行操作
|
|
Programmatically Specifying the Schema
- Programmatically Specifying the Schema
- 常見的業務情況是Case class無法事先定義的,此情況下可以透過編程的方式建立Dataframe
- 步驟如下:
- 將原始的RDD轉換成Rows類型的RDD
- 創建透過StructType表示的schema,該schema必須符合Step1中的Rows結構
- 使用createDataFrame方法將schema應用於RDD的Rows
|
|