AWS Glue Crawler为每个镶木地板数据创建每个表

时间:2018-08-23 05:59:15

标签: amazon-web-services apache-spark amazon-s3 pyspark aws-glue

在粘合作业中,我使用粘合连接从AWS RDS PSQL创建了dynamic_frame,并在完成一些ETL作业后将数据写入S3。之后,我为S3中编写的拼花文件创建并运行Glue Crawler。这是示例代码。

     dynamic_frame = glueContext.create_dynamic_frame_from_options('postgresql',
                                                                         connection_options)


    glueContext.write_dynamic_frame.from_options(
         frame=cleaned_dynamic_frame,
         connection_type="s3",
         connection_options={"path": export_path},
         format="parquet")



   response = glue.create_crawler(
        Name=crawler_name,
        Role=role,
        DatabaseName=db_name,
        Targets={
            'S3Targets': [
                {
                    'Path': path
                }
            ]
        },
        TablePrefix='{}_'.format(table_name)
    )


### S3 Objects list in the path (20 parquet files)
<bucket>/<path>/part-0000-a.snappy.parquet
<bucket>/<path>/part-0001-b.snappy.parquet
<bucket>/<path>/part-0002-c.snappy.parquet
<bucket>/<path>/part-0003-d.snappy.parquet
<bucket>/<path>/part-0004-e.snappy.parquet
<bucket>/<path>/part-0005-f.snappy.parquet
<bucket>/<path>/part-0006-g.snappy.parquet
<bucket>/<path>/part-0007-h.snappy.parquet
<bucket>/<path>/part-0008-i.snappy.parquet

问题: 胶搜寻器应该为这些镶木地板数据创建一个具有相同架构的表。但是,胶爬行器以某种方式为每个镶木地板数据创建了多个表,并且每个表的位置都为每个镶木地板数据。不合并。这有时会发生..有时会正常工作...

我的猜测是,spark在完成胶水作业之前会向s3创建_temporary文件...并且在存在临时文件的那一刻,胶水搜寻器正在运行,并且会为每个文件创建每个表。

如果您有任何想法,请在下面评论。 谢谢您的大力帮助。

0 个答案:

没有答案