我希望我的连帽衫文件大小在
small=50MB
和 max=100MB
之间。
以下配置用作更新插入的地图选项:
val hudiOptions = Map[String, String](
HoodieWriteConfig.TBL_NAME.key -> hudiTableConfig.tableName,
DataSourceWriteOptions.TABLE_TYPE.key -> DataSourceWriteOptions.COW_TABLE_TYPE_OPT_VAL,
DataSourceWriteOptions.RECORDKEY_FIELD.key() -> hudiTableConfig.recordKey,
DataSourceWriteOptions.PRECOMBINE_FIELD.key() -> hudiTableConfig.combineKey,
"hoodie.parquet.max.file.size" -> "125829120",
"hoodie.parquet.small.file.limit" -> "52428800")
updatedDataFrame.write
.format(HudiConstants.HudiFormat)
.options(hudiOptions)
.option(DataSourceWriteOptions.OPERATION.key(), DataSourceWriteOptions.UPSERT_OPERATION_OPT_VAL)
// .option("hoodie.upsert.shuffle.parallelism", "200") // Default shuffle parallelism is 200
.mode(saveMode.get)
.save(s"$storageSystemPath/${hudiTableConfig.tableName}/")
我的输入 df 是按日期分区的,大小如下:
date=2024-03-07 -> 1.00 GB
date=2024-03-06 -> 52.2 MB
date=2024-03-06 -> 54.4 MB
date=2024-03-06 -> 60 MB
阅读并更新后,我不断获得 11.7MB 的文件:
有什么建议哪里出了问题吗?
根据您的详细信息,我假设您仅在表中更新插入一次,即一次提交。
对于调整文件大小,hudi 使用之前的提交统计信息来了解工作负载(当前表的行通常大小)。
因此,您会期望 hudi 在几次提交后收敛到指定的大小。