AttributeError:“GlueContext”对象没有属性“create_sample_dynamic_frame”

问题描述 投票:0回答:1

这个官方文档建议有一个函数可以从 Glue Catalog 读取示例数据,即 create_dynamic_frame_from_catalog。

详细:create_dynamic_frame_from_catalog(database,table_name,redshift_tmp_dir,transformation_ctx =“”,push_down_predicate =“”,additional_options = {},catalog_id = None)

但是,当我尝试在代码中使用相同的内容时,它会出错。我尝试了以下两种方法:

选项 1(在 from_catalog 之前加点,就像我们在读取动态框架时通常所做的那样 -glueContext.create_dynamic_frame.from_catalog):

AWSGlueDataCatalog_node1698294792048 = glueContext.create_sample_dynamic_frame.from_catalog(database="abc",
    table_name="def",
    transformation_ctx="ijk", sample_options = {'maxSamplePartitions':2, 'maxSampleFilesPerPartition': 3}
    )

错误消息:AttributeError:“GlueContext”对象没有属性“create_sample_dynamic_frame”

选项 2(全部包含下划线):

AWSGlueDataCatalog_node1698294792048 = glueContext.create_sample_dynamic_frame_from_catalog(database="abc",
    table_name="def",
    transformation_ctx="ijk", sample_options = {'maxSamplePartitions':2, 'maxSampleFilesPerPartition': 3}
    )

错误消息:Py4JError:调用 o96.getSampleDynamicFrame 时发生错误。追踪:

该怎么办?我的目的是读取一个非常大的表的小样本来试验某些事情,而不需要在大量数据的不必要的处理上花费很多。请帮忙!

python amazon-web-services pyspark aws-glue
1个回答
0
投票

如果你仔细查看官方文档中的'create_sample_dynamic_frame_from_catalog'定义,你会看到三个必填参数:database、table_name、num。

您错过了“num”参数,这就是您收到上述错误消息的原因。

我能够使用以下代码创建示例动态框架:

df1 = glueContext.create_sample_dynamic_frame_from_catalog(
    database="default",
    table_name="test",
    num = 100,
    transformation_ctx="df1",
)

按照此操作,您将能够创建示例动态框架,并且可以节省处理完整数据的成本。 :)

© www.soinside.com 2019 - 2024. All rights reserved.