我正在使用pyspark流从S3到ETL输入文件。
我需要能够在s3://上构建所有原始输入文件的审核跟踪,并且我的实木复合地板输出最终在hdfs://上。
给定dstream,rdd或特定的rdd分区,是否有可能确定s3中输入数据的原始文件名?
目前,我知道的唯一方法是采用rdd.toDebugString()
并尝试对其进行解析。但是,这感觉确实很hack,在某些情况下不起作用。例如,解析调试输出不适用于我也在做的批处理模式导入(使用sc.TextFile("s3://...foo/*")
样式glob)。
有没有人能确定原始文件名的明智方法?
似乎其他一些Spark用户过去也有这个问题,例如:
谢谢!
我们遇到了同样的问题,文件很小,所以我们使用sc.wholeTextFiles("s3:...foo/*")
。
这会创建的RDD,("<path/filename>","<content>")
然后将文件名附加到文件内容中以供使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句