Ich habe eine Schleife, die in jeder Iteration Zeilen generiert. Mein Ziel ist es, einen Datenrahmen mit einem gegebenen Schema zu erstellen, der nur diese Zeilen enthält. Ich habe eine Reihe von Schritten im Auge zu folgen, aber ich bin nicht in der Lage ein neues zu einem List[Row]
in jeder Schleife IterationSpark - Erstellen eines DataFrame aus einer Liste von in einer Schleife generierten Zeilen
Ich versuche, den folgenden Ansatz hinzuzufügen:
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)
Kann mir jemand sagen, Was mache ich falsch, oder was könnte ich in meinem Ansatz ändern, um aus den von mir generierten Zeilen einen Datenrahmen zu generieren?
Vielleicht gibt es eine bessere Möglichkeit zum Sammeln der Zeilen anstelle von List [Row]. Aber dann muss ich diese andere Art von Sammlung in einen Datenrahmen umwandeln.