如何将 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Avro 文件加载到具有“时间戳”类型的列的 BigQuery 表中
如何将嵌套的 Avro 字段作为单个字段复制到 Redshift?
如何将 AVRO 文件中的整数值加载到 bigquery 中的日期列?