首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确地进行电子病历S3DistCp groupBy?

如何正确地进行电子病历S3DistCp groupBy?
EN

Stack Overflow用户
提问于 2016-07-14 12:23:55
回答 1查看 4.3K关注 0票数 8

我正在使用aws .net sdk运行一个s3distcp作业到EMR,将文件夹中的所有文件与--groupBy连接起来。但是不管我尝试过什么"groupBy“arg,它都失败了,或者只是复制文件而没有连接,就像arg列表中指定的no一样。

文件夹中的文件名为spark,如下所示:

部分-0000

第0001部

第0002部

..。

..。

代码语言:javascript
复制
step.HadoopJarStep = new HadoopJarStepConfig
            {
                Jar = "/usr/share/aws/emr/s3-dist-cp/lib/s3-dist-cp.jar",
                Args = new List<string>
                {
                    "--s3Endpoint=s3-eu-west-1.amazonaws.com",
                    "--src=s3://foo/spark/result/bar" ,
                    "--dest=s3://foo/spark/result-merged/bar",
                    "--groupBy=(part.*)",
                    "--targetSize=256"

                }
            };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-14 13:42:52

在经历了一整天的挣扎之后,我终于得到了下面的groupKey arg:

代码语言:javascript
复制
--groupBy=.*part.*(\w+)

但是,即使我将--targetSize=1024添加到args中,s3distcp也生成了2,5MB - 3MB文件。有人知道这件事吗?

** *更新* **

下面是groupBy子句,它将所有文件连接到一个文件中,放在它们自己的文件夹中:

代码语言:javascript
复制
.*/(\\w+)/.*

最后一个"/“在这里是如此重要--来源=”s3://foo/火花/结果/“

“结果”文件夹中有一些文件夹:

代码语言:javascript
复制
s3://foo/spark/result/foo
s3://foo/spark/result/bar
s3://foo/spark/result/lorem
s3://foo/spark/result/ipsum

在上面的每个文件夹中都有以下数百个文件:

代码语言:javascript
复制
part-0000
part-0001
part-0002

.*/(\\w+)/.*这个group子句将每个文件夹中的每个文件分组,所以最后您为每个文件夹获得了一个文件,该文件夹名为

代码语言:javascript
复制
s3://foo/spark/result-merged/foo/foo -> File
s3://foo/spark/result-merged/bar/bar -> File
s3://foo/spark/result-merged/lorem/lorem -> File
s3://foo/spark/result-merged/ipsum/ipsum -> File

所以,这是我最后的工作命令:

代码语言:javascript
复制
s3-dist-cp --src s3://foo/spark/result/  --dest s3://foo/spark/results-merged --groupBy '.*/(\\w+)/.*' --targetSize 1024

谢谢。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38374107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档