将 HadoopRDD 转换为 DataFrame
Convert HadoopRDD to DataFrame
在 EMR Spark 中,我有一个 HadoopRDD
org.apache.spark.rdd.RDD[(org.apache.hadoop.io.Text, org.apache.hadoop.dynamodb.DynamoDBItemWritable)] = HadoopRDD[0] at hadoopRDD
我想将其转换为 DataFrame org.apache.spark.sql.DataFrame
。
有人知道怎么做吗?
首先将其转换为简单类型。假设您的 DynamoDBItemWritable
只有一个字符串列:
val simple: RDD[(String, String)] = rdd.map {
case (text, dbwritable) => (text.toString, dbwritable.getString(0))
}
然后你可以使用toDF
得到一个DataFrame:
import sqlContext.implicits._
val df: DataFrame = simple.toDF()
在 EMR Spark 中,我有一个 HadoopRDD
org.apache.spark.rdd.RDD[(org.apache.hadoop.io.Text, org.apache.hadoop.dynamodb.DynamoDBItemWritable)] = HadoopRDD[0] at hadoopRDD
我想将其转换为 DataFrame org.apache.spark.sql.DataFrame
。
有人知道怎么做吗?
首先将其转换为简单类型。假设您的 DynamoDBItemWritable
只有一个字符串列:
val simple: RDD[(String, String)] = rdd.map {
case (text, dbwritable) => (text.toString, dbwritable.getString(0))
}
然后你可以使用toDF
得到一个DataFrame:
import sqlContext.implicits._
val df: DataFrame = simple.toDF()