Spark:Avro RDD到csv

时间:2015-01-20 14:13:09

标签: hadoop apache-spark cloudera-cdh rdd


我能够将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)

1 个答案:

答案 0 :(得分: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(","))

使用this sample avro file打印

运行csv.collect().foreach(println)
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
...