本文匯總了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。