hadoop - 如何使用 pig 或 hadoop fs 选项重命名具有特定扩展名的文件?

标签 hadoop apache-pig

我在基于 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/

相关文章:

nosql - 大规模数据处理 Hbase vs Cassandra

hadoop - 使用 Pig 加载 Json 数据

hadoop - 没有在 pig 中使用 SUM() 获得计算值

hadoop - 编译Pig Bank UDF错误

hadoop - 如何在 pig 的不同表中划分数字

hadoop - 所有任务尝试都已完成,但 mapreduce 中的作业失败

hadoop - 来自Ambari的Superset内部服务器错误

hadoop - 使用 ChainReducer 抛出异常添加多个 Reducer

hadoop - 如何在 Pig 中使用标题(第一行)作为字段名称

hadoop - 在PIG中配置LOAD功能