【问题标题】:Spark : Avro RDD to csvSpark:Avro RDD 到 csv
【发布时间】:2015-01-20 14:13:09
【问题描述】:


我能够将arvo 文件读入avroRDD 并尝试转换为csvRDD,其中包含以逗号分隔的所有值。使用以下代码,我可以将特定字段读入csvRDD

val csvRDD = avroRDD .map({case (u, _) => u.datum.get("empname")})

如何将所有值读入csvRDD,而不是指定字段名称。我的结果csvRDD 应该包含如下记录

(100,John,25,IN)
(101,Ricky,38,AUS)
(102,Chris,68,US)

【问题讨论】:

  • 你是如何创建 avroRDD 的。是使用 spark SQL (sqlContext) 还是直接使用 SparkContext?

标签: hadoop apache-spark cloudera-cdh rdd


【解决方案1】:

使用 Spark 1.2+ 和 Databricks 的 Spark-Avro integration library,可以将 avro rdd 转换为 csv rdd,如下所示:

val sqlContext = new SQLContext(sc)
val episodes = sqlContext.avroFile("episodes.avro")
val csv = episodes.map(_.mkString(","))

运行csv.collect().foreach(println) 使用this sample avro file 打印

The Eleventh Hour,3 April 2010,11
The Doctor's Wife,14 May 2011,11
Horror of Fang Rock,3 September 1977,4
An Unearthly Child,23 November 1963,1
The Mysterious Planet,6 September 1986,6
Rose,26 March 2005,9
...

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多