1

Hadoop で Scalding を使用しています。データ フィールドの 1 つに基づいてチャンクで出力したい TypedPipe の形式の大きなデータセットがあります。

たとえば、データはで<category, field1, field2>、各カテゴリのデータを別のカテゴリの SequenceFile に格納する必要があります。outPath/cat1outPath/cat2

TemplatedTsvここでオプション について読みました: Scaldingで出力をバケット化する方法

そしてここ: Scalding で Hive スタイルのディレクトリ構造でデータを出力する方法は?

ただし、これは、SequenceFile ではなく、Tsv ファイルが必要な場合にのみ機能します。

明らかにループが機能します:

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 の書き込みで機能する同等の方法はありますか?

4

1 に答える 1