6
我想將RDD
另存爲parquet文件。要做到這一點,我通過RDD到DataFrame
,然後我用一個結構來DataFrame
保存爲一個文件拼花:如何自動創建用於將RDD傳遞到DataFrame的StructType
val aStruct = new StructType(Array(StructField("id",StringType,nullable = true),
StructField("role",StringType,nullable = true)))
val newDF = sqlContext.createDataFrame(filtered, aStruct)
的問題是如何爲假定所有的人都StringType
所有列自動創建aStruct
?另外,nullable = true
是什麼意思?這是否意味着所有空值將被Null
替代?
如果功能列表很長,該怎麼辦?我想避免使用(「id」,「role」)。假設每個RDD具有相同的結構'RDD [Map [String,Any]]',其中String是特徵嗎?是否可以創建特徵列表? – duckertito
如果要素列表很長,您可以不傳遞參數給'toDF'(這會導致spark使用列名'_1','_2' ...),或者您可以使用列表'colNames'並將其解包像這樣:'myRDD.toDF(colName:_ *)' –
@duckertito查看我最近的編輯 –