删除 HDFS 分区键

Dropping an HDFS partition key

我意识到我有大量数据分区在 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

因此我可以快速加载更大的文件。

Fortunately, the partitioning key I want to delete is exactly the last one (I don't know if it makes it easier). I cannot come across a solution not using a script that would take too much time to do the job.

  1. 是的,这非常简单,您只需将文件从叶目录移动到其父目录(并删除现在为空的目录)。这不是大数据作业,只是文件系统操作。除非我们谈论的是数千个分区,否则这不会花很长时间。如果涉及到一些Hive目录,你也必须更新它。
  2. 是的,您将不得不 运行 一些 Hadoop 作业来合并 parquet 文件。花费的时间完全取决于您的数据和资源。这些工作本身非常简单明了。