如何使用spark sc.textFile获取文件名?

时间:2015-12-16 15:45:35

标签: scala apache-spark

我正在使用以下代码阅读文件目录:

val data = sc.textFile("/mySource/dir1/*")

现在我的data rdd包含目录中所有文件的所有行(对吗?)

我现在想要为每行添加一个包含源文件名的列,我该怎么做?

我尝试的其他选项是使用wholeTextFile但我不断出现内存异常。 5台服务器24核24 GB(执行器 - 核心5执行器 - 内存5G) 任何想法?

1 个答案:

答案 0 :(得分:7)

您可以使用此代码。我用Spark 1.4和1.5进行了测试。

它从inputSplit获取文件名,然后使用iterator <{1}} mapPartitionsWithInputSplit将其添加到每一行

NewHadoopRDD