apachespark和hudi:大量的输出文件

y1aodyip  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(415)

我正在尝试从许多不同的.csv文件(都具有相同的“结构”)读取数据,使用spark执行一些操作,最后将它们保存为hudi格式。
要在同一个hudi表中存储数据,我认为最好的方法是在执行写操作时使用append方法。
问题是这样做会创建成吨的小文件,它们的总维数远远超过输入数据集的大小(在某些情况下是10倍)。
这是我的hudi配置:

hudi_options = {
  'hoodie.table.name': tableName,
  'hoodie.datasource.write.recordkey.field': 'uuid',
  'hoodie.datasource.write.partitionpath.field': 'main_partition',
  'hoodie.datasource.write.table.name': tableName,
  'hoodie.datasource.write.operation': 'upsert',
  'hoodie.datasource.write.precombine.field': 'ts',
  'hoodie.upsert.shuffle.parallelism': 10, 
  'hoodie.insert.shuffle.parallelism': 10,
  'hoodie.delete.shuffle.parallelism': 10
}

当执行写操作时,如下所示: result_df.write.format("hudi").options(**hudi_options).mode("append").save(basePath) 其中,结果_df是一个sparkDataframe,它总是具有相同的模式,但具有不同的数据,并且basepath是常量。
我检查了输出文件的内容,它们具有正确的模式/数据。那么,有没有一种方法可以将数据附加到同一个hudi表文件中?
我对apachespark和hudi还比较陌生,所以如果您有任何帮助/建议,我将不胜感激;-)

mcvgt66p

mcvgt66p1#

请提出github问题(httsp://github.com/apache/hudi/issues)及时得到社会的回应

相关问题