我有一千个压缩格式的二进制文件,每个文件都需要通过一次解码分别解码。文件的最大大小为500 MB。目前,我能够使用python(带有struct包)来一对一地解码文件。但是,由于文件的数量和大小很大,因此无法顺序解码文件。
我正在考虑在Spark中处理这些数据,但是我在Spark中没有很多经验。您能建议一下是否可以立即完成此任务。提前谢谢了。
sc.textFiles由于您具有二进制文件,因此无法在此处使用。您应该使用sc.binaryFiles
这是python中的示例,我敢肯定scala和java具有相同的binaryFiles API。
from pyspark import SparkContext
sc= SparkContext()
raw_binary = sc.binaryFiles("/path/to/my/files/directory")
import zlib
def decompress(val):
try:
s = zlib.decompress(val, 16 + zlib.MAX_WBITS)
except:
return val
return s
raw_binary.mapValues(decompress).take(1)
Run Code Online (Sandbox Code Playgroud)
您可以使用zlib解压缩
| 归档时间: |
|
| 查看次数: |
3087 次 |
| 最近记录: |