我在基于 mm/dd/yyyy 分区的文件夹结构中有 *.gz 文件 . 我想重命名以 .gz 扩展名结尾的文件。
请建议如何使用 hadoop fs 命令行选项或使用 pig 重命名具有特定扩展名的文件。
这是我的文件夹结构
----root folder
|
---year
-- month
-- day
-- filename*.gz
我想重命名扩展名为 .gz 的文件。请建议如何实现这一目标。
最佳答案
我知道这是一个肮脏的 hack,但它对我有用。我假设您想将 .gz 文件扩展名更改为 .newextension:
hadoop fs -ls root/*/*/*/filename*.gz | grep .gz \
| awk '{print "hadoop fs -mv " $NF" "$NF}' | rev \
| cut -c 4-| rev | sed -e 's/$/newextension/'| bash
您可以根据需要更改 cut -c 4-
部分进行试验。在您准备好运行它之前,我建议在最后使用文件输出而不是直接 bash 管道:
hadoop fs -ls root/*/*/*/filename*.gz | grep .gz \
| awk '{print "hadoop fs -mv " $NF" "$NF}' | rev \
| cut -c 4-| rev | sed -e 's/$/newextension/' > rename_script.sh
当你对它感到满意时,运行它:
bash rename_script.sh
关于hadoop - 如何使用 pig 或 hadoop fs 选项重命名具有特定扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910351/