我能够将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)
将 Spark 1.2+ 与 Databricks 的 Spark-Avro 集成库结合使用,可以将 avro rdd 转换为 csv rdd,如下所示:
val sqlContext = new SQLContext(sc)
val episodes = sqlContext.avroFile("episodes.avro")
val csv = episodes.map(_.mkString(","))
使用此示例 avro 文件打印运行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
...