pyspark 无法加载密钥生成器类 org.apache.hudi.keygen.ComplexKeyGenerator

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

使用Pyspark向hudi表写入数据时,选项内容如下:

hudi_options = {   'hoodie.datasource.write.keygenerator.class':'org.apache.hudi.keygen.ComplexKeyGenerator', 
'hoodie.datasource.hive_sync.database': 'dingpan_test_mrs', 
'hoodie.table.name': 'dwd_design_designasset_function_offline_wide', 'hoodie.datasource.write.table.name': 'dwd_design_designasset_function_offline_wide', 'hoodie.datasource.write.recordkey.field':'id', 'hoodie.datasource.write.precombine.field': 'modified_date', 'hoodie.datasource.write.table.type':'COPY_ON_WRITE', 'hoodie.datasource.write.operation': 'upsert', 
'hoodie.upsert.shuffle.parallelism': 1, 
'hoodie.insert.shuffle.parallelism': 1 
} 

new_data.write
.format("hudi")
.options(**hudi_options)
.mode("append")
.save(obs_path)

错误信息:

Could not load key generator class org.apache.hudi.keygen.ComplexKeyGenerator.

我该如何调整我的代码?请

pyspark apache-hudi key-generator
1个回答
0
投票

您实际上不需要 ComplexKeyGenerator。仅当您的 recordKey 和/或分区由多列组成时才使用。

您只有一列用于记录键(在本例中为 id),并且没有指定分区,因此所有内容都将位于 Hudi 默认分区中。

所以在你的情况下你只需要 SimpleKeyGenerator。但实际上这是默认的密钥生成器,因此您可以完全省略该参数。

所以删除这个

'hoodie.datasource.write.keygenerator.class':'org.apache.hudi.keygen.ComplexKeyGenerator',
,它应该可以工作。

有关密钥生成器的一些文档:https://hudi.apache.org/docs/key_ Generation/#simple

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.