我有textRDD: org.apache.spark.rdd.RDD[(String, String)]
我想把它转换成一个数据框架。列对应于每页(行)的标题和内容。
使用toDF()
,如果有列名则提供列名。
val textDF = textRDD.toDF("title": String, "content": String)
textDF: org.apache.spark.sql.DataFrame = [title: string, content: string]
或
val textDF = textRDD.toDF()
textDF: org.apache.spark.sql.DataFrame = [_1: string, _2: string]
shell自动导入(我使用的是1.5版),但您可能需要在应用程序中使用import sqlContext.implicits._
。
我通常这样做:
创建一个像这样的case类:
case class DataFrameRecord(property1: String, property2: String)
然后可以使用case类将map转换为新的结构:
rdd.map(p => DataFrameRecord(prop1, prop2)).toDF()