gpt4 book ai didi

hadoop - 基于字段之一将 Scalding TypedPipe 输出到多个目录中的 SequenceFile

转载 作者:可可西里 更新时间:2023-11-01 15:32:43 26 4
gpt4 key购买 nike

我在 Hadoop 上使用 Scalding,我有一个 TypedPipe 形式的大型数据集,我希望根据其中一个数据字段以 block 的形式输出。

例如数据是<category, field1, field2> ,我希望每个类别的数据存储在单独类别的 SequenceFile 中,例如outPath/cat1 , outPath/cat2等。我想要一个 MapReduce 阶段(或避免循环)。

我已阅读有关 TemplatedTsv 的信息选项在这里: How to bucket outputs in Scalding

这里: How to output data with Hive-style directory structure in Scalding?

然而,这仅在您需要 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))
}

那么有没有一个等同于TemplateTsv的方法呢?哪个可以用于编写 SequenceFile,避免循环?

最佳答案

com.twitter.scalding.TemplatedSequenceFile这可能会做你需要的。它看起来就像 TemplateTsv,但输出到 SequenceFile

关于hadoop - 基于字段之一将 Scalding TypedPipe 输出到多个目录中的 SequenceFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com