Hadoop 基于其中一个字段,将滚烫的TypedPipe输出到多个目录中的SequenceFile

Hadoop 基于其中一个字段,将滚烫的TypedPipe输出到多个目录中的SequenceFile,hadoop,cascading,scalding,sequencefile,Hadoop,Cascading,Scalding,Sequencefile,我在Hadoop上使用的是滚烫,我有一个类型管道形式的大型数据集,我希望根据其中一个数据字段以块的形式输出 例如,数据是,我希望每个类别的数据存储在单独类别的SequenceFile中,例如输出路径/cat1,输出路径/cat2等,我希望使用单个MapReduce阶段(或避免循环) 我在这里读过关于TemplatedTsv选项的内容: 在这里: 但是,这仅适用于需要Tsv文件而不是SequenceFile的情况 显然,循环是有效的: var category = 0L for (categ

我在Hadoop上使用的是滚烫,我有一个类型管道形式的大型数据集,我希望根据其中一个数据字段以块的形式输出

例如,数据是
,我希望每个类别的数据存储在单独类别的SequenceFile中,例如
输出路径/cat1
输出路径/cat2
等,我希望使用单个MapReduce阶段(或避免循环)

我在这里读过关于
TemplatedTsv
选项的内容:

在这里:

但是,这仅适用于需要Tsv文件而不是SequenceFile的情况

显然,循环是有效的:

var category = 0L

for (category <- categories) {
    data
    .filter(_.category == category)
    .map(t => (NullWritable.get, new BytesWritable(SerializationUtils.serialize(t))))
    .write(WritableSequenceFile(outPath + "/" + category))
}
var类别=0L
对于(类别(nullwriteable.get,新的byteswriteable(SerializationUtils.serialize(t)))
.write(WritableSequenceFile(输出路径+“/”+类别))
}
那么,有没有一种与
templateSV
等效的方法可以编写一个序列文件,避免循环?

有一种方法可以满足您的需要。它看起来就像TemplateSV,但输出到SequenceFile