如何将 Avro 的 GenericData.Record 的 RDD 转换为 DataFrame?

Posted

技术标签:

【中文标题】如何将 Avro 的 GenericData.Record 的 RDD 转换为 DataFrame?【英文标题】:How to convert RDD of Avro's GenericData.Record to DataFrame? 【发布时间】:2016-07-17 10:47:25 【问题描述】:

也许这个问题看起来有点抽象,这里是:

val originalAvroSchema : Schema   = // read from a file
val rdd : RDD[GenericData.Record] = // From some streaming source

// Looking for a handy:
val df: DataFrame   = rdd.toDF(schema)

我探索了spark-avro,但它只支持从文件中读取,而不是从现有的RDD 中读取。

【问题讨论】:

不确定答案被删除的原因 有一个你正在寻找的东西的拉取请求github.com/databricks/spark-avro/pull/113/files 我删除了答案,因为它被否决了。 【参考方案1】:
import com.databricks.spark.avro._

val sqlContext = new SQLContext(sc)
val rdd : RDD[MyAvroRecord] = ...
val df = rdd.toAvroDF(sqlContext)

【讨论】:

以上是关于如何将 Avro 的 GenericData.Record 的 RDD 转换为 DataFrame?的主要内容,如果未能解决你的问题,请参考以下文章