我正在使用以下代码阅读文件目录:
val data = sc.textFile("/mySource/dir1/*")
现在我的data
rdd包含目录中所有文件的所有行(对吗?)
我现在想要为每行添加一个包含源文件名的列,我该怎么做?
我尝试的其他选项是使用wholeTextFile但我不断出现内存异常。 5台服务器24核24 GB(执行器 - 核心5执行器 - 内存5G) 任何想法?
答案 0 :(得分:7)
您可以使用此代码。我用Spark 1.4和1.5进行了测试。
它从inputSplit
获取文件名,然后使用iterator
<{1}} mapPartitionsWithInputSplit
将其添加到每一行
NewHadoopRDD