压缩输出烫伤/级联tsvcompressed

xmjla07d  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(280)

所以人们在压缩包括我在内的烫伤性工作的产出方面一直存在问题。在谷歌搜索之后,我在某个不知名的论坛上得到了一个奇怪的答案,但没有什么适合人们复制和粘贴的需要。
我想要一个输出像 Tsv ,但写入压缩输出。

i7uaboj4

i7uaboj41#

无论如何,经过多次验证后,我成功地编写了一个tsvcompressed输出,它似乎可以完成这项工作(您仍然需要设置hadoop作业系统配置属性,即将compress设置为true,并将编解码器设置为合理的值,或者默认为crapy deflate)

import com.twitter.scalding._
import cascading.tuple.Fields
import cascading.scheme.local
import cascading.scheme.hadoop.{TextLine, TextDelimited}
import cascading.scheme.Scheme
import org.apache.hadoop.mapred.{OutputCollector, RecordReader, JobConf}

case class TsvCompressed(p: String) extends FixedPathSource(p) with DelimitedSchemeCompressed

trait DelimitedSchemeCompressed extends Source {
  val types: Array[Class[_]] = null

  override def localScheme = new local.TextDelimited(Fields.ALL, false, false, "\t", types)

  override def hdfsScheme = {
    val temp = new TextDelimited(Fields.ALL, false, false, "\t", types)
    temp.setSinkCompression(TextLine.Compress.ENABLE)
    temp.asInstanceOf[Scheme[JobConf,RecordReader[_,_],OutputCollector[_,_],_,_]]
  }
}
zzoitvuj

zzoitvuj2#

我也有一个小项目,展示了如何从 Tsv . 字数已压缩。
烫伤正在消退 null 到瀑布 TextDelimeted 禁用压缩的参数。

相关问题