gpt4 book ai didi

scala - 使用 spark 读取压缩文件*带有自定义扩展名*

转载 作者:行者123 更新时间:2023-12-03 21:27:14 25 4
gpt4 key购买 nike

我想将 gzip 压缩文件读入 RDD[String]使用 sc.textFile("path/to/file.Z") 的等价物.

除了我的文件扩展名,如果不是 gz但是是 Z相反,因此该文件不会被识别为被 gzip 压缩。

我无法重命名它们,因为它会破坏生产代码。我不想复制它们,因为它们很大而且很多。我想我可以使用某种符号链接(symbolic link),但我想先看看 scala/spark 是否有办法(我现在在本地 Windows 机器上)。

我怎样才能有效地阅读这个文件?

最佳答案

这里有解决此问题的解决方法http://arjon.es/2015/10/02/reading-compressed-data-with-spark-using-unknown-file-extensions/

相关部分:

...extend GzipCodec and override the getDefaultExtension method.


package smx.ananke.spark.util.codecs

import org.apache.hadoop.io.compress.GzipCodec

class TmpGzipCodec extends GzipCodec {

override def getDefaultExtension(): String = ".gz.tmp" // You should change it to ".Z"

}

Now we just registered this codec, setting spark.hadoop.io.compression.codecs on SparkConf:


val conf = new SparkConf()

// Custom Codec that process .gz.tmp extensions as a common Gzip format
conf.set("spark.hadoop.io.compression.codecs", "smx.ananke.spark.util.codecs.TmpGzipCodec")

val sc = new SparkContext(conf)

val data = sc.textFile("s3n://my-data-bucket/2015/09/21/13/*")

关于scala - 使用 spark 读取压缩文件*带有自定义扩展名*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44372995/

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