将 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()