pyspark AttributeError:'GSPRINT Context'对象没有属性'create_sample_dynamic_frame'

fumotvh3  于 12个月前  发布在  Spark
关注(0)|答案(1)|浏览(100)

这个官方文档建议有一个函数可以从Glue Catalog中读取样本数据,这个函数是create_dynamic_frame_from_catalog。
详细内容:create_dynamic_frame_from_catalog(数据库,表名,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:'Gesterday Context'对象没有属性'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}
    )

错误信息:Py 4JError:调用o96.getSampleDynamicFrame出错,跟踪:

怎么办?我的目的是读取一个非常大的表的一个小样本来实验某些事情,而无需花费大量的数据进行不必要的处理。请帮助!

nhhxz33t

nhhxz33t1#

如果你仔细查看官方文档中的“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",
)

字符串
按照这个步骤,你将能够创建一个示例动态框架,并且你可以保存处理完整数据的成本。:)

相关问题