Spark Scala:检索模式并存储它

Spark Scala: retrieve the schema and store it

是否可以检索 RDD 的模式并将其存储在变量中?因为我想使用相同的模式从另一个 RDD 创建一个新的数据框。例如,下面是我希望拥有的:

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

假设我已经有 rowRDD 格式的 RDD[org.apache.spark.sql.Row] ,这可能吗?

只需使用schema属性

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

sqlContext.createDataFrame(rowRDD, oldDF.schema)