pti*_*obj 22 compression scala hdfs apache-spark
与我的其他问题有关,但有所不同:
someMap.saveAsTextFile("hdfs://HOST:PORT/out")
Run Code Online (Sandbox Code Playgroud)
如果我将RDD保存到HDFS,如何通过gzip告诉spark压缩输出?在Hadoop中,可以设置
mapred.output.compress = true
Run Code Online (Sandbox Code Playgroud)
并选择压缩算法
mapred.output.compression.codec = <<classname of compression codec>>
Run Code Online (Sandbox Code Playgroud)
我如何在火花中做到这一点?这会有效吗?
编辑:使用spark-0.7.2
Noa*_*oah 21
该方法saveAsTextFile需要使用编解码器类的附加可选参数.所以对于你的例子,使用gzip应该是这样的:
someMap.saveAsTextFile("hdfs://HOST:PORT/out", classOf[GzipCodec])
Run Code Online (Sandbox Code Playgroud)
UPDATE
由于您使用的是0.7.2,因此您可以通过在启动时设置的配置选项来移植压缩代码.我不确定这是否能正常工作,但你需要从这里开始:
conf.setCompressMapOutput(true)
conf.set("mapred.output.compress", "true")
conf.setMapOutputCompressorClass(c)
conf.set("mapred.output.compression.codec", c.getCanonicalName)
conf.set("mapred.output.compression.type", CompressionType.BLOCK.toString)
Run Code Online (Sandbox Code Playgroud)
这样的事情:
System.setProperty("spark.hadoop.mapred.output.compress", "true")
System.setProperty("spark.hadoop.mapred.output.compression.codec", "true")
System.setProperty("spark.hadoop.mapred.output.compression.codec", "org.apache.hadoop.io.compress.GzipCodec")
System.setProperty("spark.hadoop.mapred.output.compression.type", "BLOCK")
Run Code Online (Sandbox Code Playgroud)
如果你让它工作,发布你的配置也可能对其他人有帮助.
| 归档时间: |
|
| 查看次数: |
14286 次 |
| 最近记录: |