首页 > 解决方案 > 如何在spark中解压和读取包含多个压缩文件的文件

问题描述

我有一个 AA.zip 文件,它再次包含多个文件,例如 aa.tar.gz、bb.tar.gz 等

我需要在 spark scala 中阅读这些文件,我该如何实现?

这里唯一的问题是提取 zip 文件的内容。

标签: scalaapache-sparkbigdata

解决方案


所以 HDFS 上的 ZIP 会有点棘手,因为它们不能很好地分割,所以你必须为每个执行程序处理 1 个或多个 zip 文件。这也是您可能不得不回退的少数情况之一,SparkContext因为由于某种原因,Spark 中的二进制文件支持不是那么好。

https://spark.apache.org/docs/2.4.0/api/scala/index.html#org.apache.spark.SparkContext

有一个readBinaryFiles那里可以让您访问 zip 二进制数据,然后您可以使用来自 java 或 scala 的通常的 ZIP 处理。


推荐阅读