我能够将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)
答案 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(","))
运行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
...