如何从 pyspark rdd 或分区确定原始 s3 输入文件名
How to determine original s3 input filenames from a pyspark rdd or partition
我正在使用 pyspark 流式传输来自 S3 的 ETL 输入文件。
我需要能够建立所有原始输入文件的审计线索
在 s3:// 上,我的镶木地板输出在 hdfs:// 上结束。
给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能
确定 s3 中输入数据的原始文件名?
目前我知道的唯一方法是使用
rdd.toDebugString()
并尝试解析它。然而,这感觉真的很 hacky 并且不
在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用
我也在做(使用 sc.TextFile("s3://...foo/*")
样式 glob)。
有没有人有确定原始文件名的明智方法?
似乎其他一些 spark 用户过去也有过这个问题,因为
示例:
谢谢!
我们遇到了同样的问题,而且文件足够小,所以我们使用了 sc.wholeTextFiles("s3:...foo/*")
。
创建 ("<path/filename>","<content>")
的 RDD,我们将文件名附加到文件内容以供使用。
我正在使用 pyspark 流式传输来自 S3 的 ETL 输入文件。
我需要能够建立所有原始输入文件的审计线索 在 s3:// 上,我的镶木地板输出在 hdfs:// 上结束。
给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能 确定 s3 中输入数据的原始文件名?
目前我知道的唯一方法是使用
rdd.toDebugString()
并尝试解析它。然而,这感觉真的很 hacky 并且不
在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用
我也在做(使用 sc.TextFile("s3://...foo/*")
样式 glob)。
有没有人有确定原始文件名的明智方法?
似乎其他一些 spark 用户过去也有过这个问题,因为 示例:
谢谢!
我们遇到了同样的问题,而且文件足够小,所以我们使用了 sc.wholeTextFiles("s3:...foo/*")
。
创建 ("<path/filename>","<content>")
的 RDD,我们将文件名附加到文件内容以供使用。