【发布时间】:2021-06-16 06:09:14
【问题描述】:
我使用 Glue Studio 创建了一个 AWS Glue 作业。 它从 Glue 数据目录中获取数据,进行一些转换,然后写入不同的数据目录。
在配置目标节点时,我启用了运行后创建新分区的选项:
作业成功运行,数据以正确的分区文件夹结构写入 S3,但在实际数据目录表中没有创建新分区 - 我仍然需要运行 Glue Crawler 来创建它们。
生成的脚本中负责创建分区的代码是这样的(作业的最后两行):
DataSink0 = glueContext.write_dynamic_frame.from_catalog(frame = Transform4, database = "tick_test", table_name = "test_obj", transformation_ctx = "DataSink0", additional_options = {"updateBehavior":"LOG","partitionKeys":["date","provider"],"enableUpdateCatalog":True})
job.commit()
我做错了什么?为什么没有创建新分区?如何避免必须运行爬虫才能在 Athena 中获取数据?
我正在使用 Glue 2.0 - PySpark 2.4
【问题讨论】:
-
只是一个问题:您是否必须在每次运行作业时都运行爬虫(使用相同的架构)?因为预期在更改后运行一次爬虫,但未来运行应该没有必要。
-
是的,我愿意,因为 Glue 作业不会在数据目录中创建新分区。
标签: amazon-web-services pyspark apache-spark-sql aws-glue aws-glue-spark