【发布时间】:2015-06-04 02:28:44
【问题描述】:
我有一个 Pig 脚本(使用稍加修改的MultiStorage)来转换一些数据。脚本运行后,我在 HDFS 上有以下格式的数据:
/tmp/data/identifier1/indentifier1-0,0001
/tmp/data/identifier1/indentifier1-0,0002
/tmp/data/identifier2/indentifier2-0,0001
/tmp/data/identifier3/indentifier3-0,0001
我正在尝试使用 S3DistCp 将这些文件复制到 S3。我正在使用--groupBy .*(identifier[0-9]).* 选项根据标识符组合文件。该组合有效,但在复制到 S3 时,文件夹也会被复制。最终输出为:
/s3bucket/identifier1/identifier1
/s3bucket/identifier2/identifier2
/s3bucket/identifier3/identifier3
有没有办法在没有第一个文件夹的情况下复制这些文件?理想情况下,我在 S3 中的输出如下所示:
/s3bucket/identifier1
/s3bucket/identifier2
/s3bucket/identifier3
我考虑过的另一个解决方案是使用 HDFS 命令将这些文件从其目录中拉出,然后再复制到 S3。这是一个合理的解决方案吗?
谢谢!
【问题讨论】:
-
你能发布你的命令吗?
-
假设您的意思是 s3distcp 命令,这里是传递给 EMR 步骤的参数:
--s3Endpoint s3.amazonaws.com --src hdfs:///tmp/data/ --dest s3://output --groupBy .*/(identifier).* -
此时 s3distcp 无法展平目录。在forums.aws.amazon.com/thread.jspa?messageID=479023񴼯 上获取功能请求。
标签: hadoop amazon-s3 apache-pig hdfs emr