本文汇总了Hudi使用时的常见问题。
Spark查询Hudi数据重复,如何处理?
问题原因:出现Spark查询hudi数据重复,通常是因为Hudi不支持Spark DataSource方式读取导致的。
解决方法:您需要在执行查询Hudi表的命令时,添加上
spark.sql.hive.convertMetastoreParquet=false
。
Hive查询Hudi数据重复,如何处理?
问题原因:Hive默认使用HiveCombineInputFormat不会调用表自定义的
input format
。解决方法:您需要在执行查询Hudi表的命令时,添加上
set hive.input.format = org.apache.hudi.hadoop.hive.HoodieCombineHiveInputFormat
。
Spark查询Hudi表分区裁剪不生效?
问题原因:可能是在分区字段包含/(正斜线)的情况下,分区字段个数和实际分区目录级数不一致,导致Spark分区裁剪失效。
解决方法:您在使用Spark DataFrame API写Hudi表时,需要加上
hoodie.datasource.write.partitionpath.urlencode= true
。
使用Spark的alter table语句时,报错xxx is only supported with v2 tables
,如何处理?
问题原因:这是因为使用Hudi Spark的模式演变功能时,需要将Hudi的配置项hoodie.schema.on.read.enable设置为true。
解决方法:请在对Hudi表进行
alter table
操作时添加配置set hoodie.schema.on.read.enable=true
。更多详细信息请参考Apache Hudi的SparkSQL Schema Evolution and Syntax Description。