S3DistCp按文件夹分组

时间:2015-02-26 01:45:58

标签: hadoop amazon-web-services amazon-s3 emr

我尝试使用S3DistCp来解决Hadoop中的小文件问题。它正在工作,但输出有点烦人。我正在处理的文件路径如下:

s3://test-bucket/test/0000eb6e-4460-4b99-b93a-469d20543bf3/201402.csv

并且该文件夹中可以有多个文件。我想按文件夹名称分组,所以我在s3distcp中使用以下group by参数:

--groupBy '.*(........-.........-....-............).*'

它确实对文件进行分组,但结果仍然会导致多个输出文件夹,每个文件夹中只有一个文件。有没有办法将分组文件输出到一个文件夹而不是多个?

谢谢!

2 个答案:

答案 0 :(得分:2)

截至2015-11-20,这是S3DistCp的行为。它将根据源目录创建多个目录。它不会跨目录组合。

答案 1 :(得分:1)

我想你可以尝试这个: --groupBy ".*/(........-.........-....-............)/.*"

在您的示例中,您应该使用以下内容:--src "s3://test-bucket/test/"

通过这种方式,您将拥有多个文件夹,这些文件夹中的所有文件都合并在一起。