2016-05-23 6 views
2

Ist es möglich, das Schema einer RDD abzurufen und in einer Variablen zu speichern? Weil ich einen neuen Datenrahmen von einer anderen RDD mit dem gleichen Schema erstellen möchte. Zum Beispiel unten ist das, was ich zu haben bin die Hoffnung:Spark Scala: das Schema abrufen und speichern

val schema = oldDF.getSchema() 
val newDF = sqlContext.createDataFrame(rowRDD, schema) 

Angenommen, ich habe bereits rowRDD im Format RDD[org.apache.spark.sql.Row], das ist etwas möglich?

Antwort

5

Verwenden Sie einfach schema Attribut

val oldDF = sqlContext.createDataFrame(sc.parallelize(Seq(("a", 1)))) 
val rowRDD = sc.parallelize(Seq(Row("b", 2)) 

sqlContext.createDataFrame(rowRDD, oldDF.schema)