MAPREDUCE服务 MRS-Hudi写入小精度Decimal数据失败:回答
回答
原因:
Hudi表数据含有Decimal类型数据。
初始入库BULK_INSET方式会使用Spark内部parquet文件的写入类进行写入,Spark对不同精度的Decimal类型处理是不同的。
UPSERT操作时,Hudi使用Avro兼容的parquet文件写入类进行写入,这个和Spark的写入方式是不兼容的。
解决方案:
执行BULK_INSERT时指定设置“hoodie.datasource.write.row.writer.enable = false”,使hoodie采用Avro兼容的parquet文件写入类进行写入。