在Spark中保存文本文件之前添加标题

poi*_*rez 13 apache-spark

我有一些火花代码来处理csv文件.它对它做了一些改造.我现在想将此RDD保存为csv文件并添加标头.此RDD的每一行都已正确格式化.

我不知道该怎么做.我想用标题字符串和我的RDD进行联合但是标题字符串不是RDD所以它不起作用.

Sea*_*wen 9

您可以从标题行中创建一个RDD然后union它,是的:

val rdd: RDD[String] = ...
val header: RDD[String] = sc.parallelize(Array("my,header,row"))
header.union(rdd).saveAsTextFile(...)
Run Code Online (Sandbox Code Playgroud)

然后你得到一堆part-xxxxx你合并的文件.

问题是我不认为你会保证标题将成为第一个分区,因此最终会出现在part-00000文件的顶部.在实践中,我很确定它会.

更可靠的是使用Hadoop命令hdfs来合并part-xxxxx文件,并且作为命令的一部分,只需从文件中输入标题行.

  • 在分布式模式下运行的Spark 1.6.2中,union没有为我提供头文件.这是我的代码片断: - `VAL头= sc.parallelize(阵列( 'COL1', 'COL2'),1)header.union(rdd.map(_的toString).).repartition(1).saveAsTextFile(outputLocation )` (3认同)