如何在单个Map Reduce作业中使用Scalding(/ cascading)写入依赖于键的多个输出。我当然可以使用.filter
来获取所有可能的密钥,但这是一个可怕的黑客攻击,它会激活许多工作。
答案 0 :(得分:6)
Scalding中有TemplatedTsv(从0.9.0rc16及更高版本开始),与Cascading TemplateTsv完全相同。
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.
答案 1 :(得分:0)
使用MultipleOutputFormat并从这些其他SO问题中推断出使用输出格式编写自定义输出类: Create Scalding Source like TextLine that combines multiple files into single mappers, Compress Output Scalding / Cascading TsvCompressed
答案 2 :(得分:0)
This suggestion建议使用Cascading TemplateTap。不知道怎么把它连接到Scalding。