我有一個循環,它在每次迭代中生成行。我的目標是創建一個具有給定模式的數據框,該數據框僅包含那些行。我心裏有一組要遵循的步驟,但我不能夠在新在每次循環迭代Spark - 從循環中生成的行列表創建數據框
我嘗試以下方法添加到List[Row]
:
var listOfRows = List[Row]()
val dfToExtractValues: DataFrame = ???
dfToExtractValues.foreach { x =>
//Not really important how to generate here the variables
//So to simplify all the rows will have the same values
var col1 = "firstCol"
var col2 = "secondCol"
var col3 = "thirdCol"
val newRow = RowFactory.create(col1,col2,col3)
//This step I am not able to do
//listOfRows += newRow -> Just for strings
//listOfRows.add(newRow) -> This add doesnt exist, it is a addString
//listOfRows.aggregate(1)(newRow) -> This is not how aggreage works...
}
val rdd = sc.makeRDD[RDD](listOfRows)
val dfWithNewRows = sqlContext.createDataFrame(rdd, myOriginalDF.schema)
有人能告訴我我做錯了什麼,或者我在改變生成一個數據框的方法時會改變什麼?
也許有更好的方法來收集行而不是List [Row]。但是,我需要將其他類型的集合轉換爲數據框。