我已经意识到我在HDFS上的太小的文件上分区了大量的数据。这样做的原因是,我使用了太多的分区键来保存数据。因此,我需要合并HDFS中分区键下的数据。
幸运的是,我想要删除的分区键恰好是最后一个(我不知道它是否使它更容易)。我无法找到一个不使用脚本的解决方案,这会花费太多时间来完成这项工作。
下面是我的HDFS的一个例子:
/part1={lot_of_values}/part2={lot_of_values}/part_to_delete={lot_of_values}/{lot_of_files}.parquet
但我想实现:
/part1={lot_of_values}/part2={lot_of_values}/{lot_of_files}.parquet
因此我可以有更大的文件来快速加载。
幸运的是,我想要删除的分区键正是最后一个(我不知道它是否使它更容易)。我无法找到一个不使用脚本的解决方案,这会花费太多时间来完成这项工作。
- 是的,它使它非常简单,您只需要将文件从叶子目录移动到其父目录(并删除现在为空的目录)。这不是大数据作业,只是文件系统操作。除非我们讨论的是数千个分区,否则这应该不会花费很长时间。如果涉及到一些Hive目录,你也必须更新它。
- 是的,您将不得不运行一些Hadoop作业来合并parquet文件。所需的时间完全取决于您的数据和资源。这些工作本身非常简单直接。