有谁知道如何将源文件名添加为粘合作业中的列?
我们创建了一个流程,在其中抓取 S3 中的一些文件以创建架构。然后,我们编写了一个作业,将文件转换为新格式,并将这些文件以 CSV 形式写回另一个 S3 存储桶,以供管道的其余部分使用。我们想要做的是访问某种作业元属性,以便我们可以向包含原始文件名的输出文件添加一个新列。
我查看了 AWS 文档和 aws-glue-libs 源代码,但没有看到任何内容。理想情况下,应该有某种方法可以从awsglue.job
包(我们使用的是 python 风格)。
我仍在学习胶水,所以如果我使用了错误的术语,请道歉。我也用 Spark 标签标记了它,因为我相信这就是 Glue 在幕后使用的东西。
通过 AWS Glue Python 自动生成的脚本,我添加了以下行:
from pyspark.sql.functions import input_file_name
## Add the input file name column
datasource1 = datasource0.toDF().withColumn("input_file_name", input_file_name())
## Convert DataFrame back to DynamicFrame
datasource2 = datasource0.fromDF(datasource1, glueContext, "datasource2")
然后,在ApplyMapping
or datasink
部分代码,您参考datasource2
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)