我使用以下代码在emr(6.2)上创建增量表:
try:
self.spark.sql(f'''
CREATE TABLE default.features_scd
(`{entity_key}` {entity_value_type}, `{CURRENT}` BOOLEAN,
`{EFFECTIVE_TIMESTAMP}` TIMESTAMP, `{END_TIMESTAMP}` TIMESTAMP, `date` DATE)
USING DELTA
PARTITIONED BY (DATE)
LOCATION 's3://mybucket/some/path'
''')
except IllegalArgumentException as e:
self.logger.error('got an illegal argument exception')
pass
我已在spark会话上启用HIVESupport()。
我得到警告:
警告hiveexternalcatalog:找不到数据源提供程序增量的对应配置单元序列。持久化数据源表 default
. features_scd
以特定于spark sql的格式导入配置单元metastore,该格式与配置单元不兼容。
例外情况是:
illegalargumentexception:无法从空字符串创建路径
基本上,这个表创建得很好,我能够实现我的目标,但我不想尝试,除非传递错误。
如果我在没有enablehivesupport()的情况下运行相同的代码,它会运行得很顺利。但是在创建/更新配置单元表的同一个会话中,我需要配置单元支持。
有没有办法防止这种例外?
暂无答案!
目前还没有任何答案,快来回答吧!