【问题标题】:How to rename files with specific extension using pig or hadoop fs option?如何使用 pig 或 hadoop fs 选项重命名具有特定扩展名的文件?
【发布时间】:2014-02-20 23:02:34
【问题描述】:

我在基于 mm/dd/yyyy 分区的文件夹结构中有 *.gz 文件 . 我想重命名以 .gz 扩展名结尾的文件。

请建议如何使用 hadoop fs 命令行选项或使用 pig 重命名具有特定扩展名的文件。

这是我的文件夹结构

----root folder
    |
     ---year
        -- month
         -- day
          -- filename*.gz

我想重命名扩展名为 .gz 的文件。请建议如何实现这一目标。

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      相关资源
      最近更新 更多