与Spark并行处理多个文件时,我想知道特定记录来自哪个文件。我的目标是为每个记录分配文件ID(或至少文件名),以进行内部审计。 有没有办法做到这一点?
我使用的是Spark Java API。
答案 0 :(得分:1)
是的,您可以使用SparkContext.wholeTextFiles
,它将文件名作为键,整个文件作为值。如果sc
是SparkContext(在您的情况下为JavaSparkContext),则只需调用sc.wholeTextFiles("path/to/dir/")
P.S。:之前我回答了类似的问题并发现此函数在读取压缩文件时遇到问题(仅使用gzip进行测试),请注意这一点。