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