Scala 一个MapReduce作业通过关键的Hadoop写入多个输出

Scala 一个MapReduce作业通过关键的Hadoop写入多个输出,scala,hadoop,mapreduce,cascading,scalding,Scala,Hadoop,Mapreduce,Cascading,Scalding,如何在单个Map Reduce作业中使用烫伤(/cascading)写入依赖于键的多个输出。当然,我可以对所有可能的键使用.filter,但这是一个可怕的黑客行为,它会引发很多工作。使用并从这些其他SO问题中推断出使用输出格式编写自定义输出类: , 级联用户组建议使用。但不确定如何将其连接到烫伤中。烫伤(从0.9.0rc16和更高版本开始)中有一个与级联模板TSV完全相同的功能 Tsv(args("input"), ('COUNTRY, 'GDP)) .read .write(Templated

如何在单个Map Reduce作业中使用烫伤(/cascading)写入依赖于键的多个输出。当然,我可以对所有可能的键使用
.filter
,但这是一个可怕的黑客行为,它会引发很多工作。

使用并从这些其他SO问题中推断出使用输出格式编写自定义输出类: ,

级联用户组建议使用。但不确定如何将其连接到烫伤中。

烫伤(从0.9.0rc16和更高版本开始)中有一个与级联模板TSV完全相同的功能

Tsv(args("input"), ('COUNTRY, 'GDP))
.read
.write(TemplatedTsv(args("output"), "%s", 'COUNTRY))
// it will create a directory for each country under "output" path in Hadoop mode.

这看起来确实很有希望,是否愿意为人们的复制和粘贴需求提供滚烫的代码?:)这看起来比我要求的更灵活!!谢谢你能说这是哪个版本的吗?是否为0.10.0及以上?或者0.9.0?从codebase中,它看起来可以从0.9.0rc16版本中获得。@morazow有没有办法删除模板字符串中使用的字段?在您的示例中,基本上我希望结果文件在结果输出中只有“GDP”字段。@Syllepsis这是一个非常好的问题;但是,我不知道当前的TemplatedTsv实现是否可行。但是,您可以创建另一个自己的MyTemplatedTsv,如此处所示,并添加“override val fields=fields.ALL”,并在调用该tap时指定要写入的字段。如果你测试一下,你能在这里回复吗?