我有基于mm / dd / yyyy分区的文件夹结构的* .gz文件 。 我想重命名以.gz扩展名结尾的文件。
请使用hadoop fs命令行选项或使用pig建议如何重命名具有特定扩展名的文件。
这是我的文件夹结构
----root folder
|
---year
-- month
-- day
-- filename*.gz
我想重命名扩展名为.gz的文件。请建议如何实现这一目标。
答案 0 :(得分:1)
我知道这是一个肮脏的黑客,但它对我有用。我假设您要将 .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