Spark/pySpark:读取小型二进制数据文件的最佳方式

par*_*ide 5 apache-spark pyspark

我需要从二进制文件中读取数据。这些文件很小,大约为,因此逐个文件地1 MB使用和处理它们可能效率不高(开销太大)。binaryFiles()

我可以将它们加入到一个大文件中,然后使用binaryRecords(),但记录大小只是512 bytes,所以我想将几条记录连接在一起,以产生数十兆字节大小的块。二进制文件格式允许这样做。

我怎样才能实现这个目标?更一般地说:这是解决问题的正确方法吗?

谢谢!

Ame*_*url -3

我不确定,但这种方式可能会有所帮助:

N 是小文件的数量。

rdd = sc.parallelize(1 到 N, N).mapPartitions(binaryFiles()).collect()