【发布时间】:2015-11-11 20:47:10
【问题描述】:
我有一个包含多个文本文件的压缩文件。 我想读取每个文件并构建一个包含每个文件内容的 RDD 列表。
val test = sc.textFile("/Volumes/work/data/kaggle/dato/test/5.zip")
将只是整个文件,但是如何遍历 zip 的每个内容,然后使用 Spark 将其保存在 RDD 中。
我对 Scala 或 Python 很好。
在 Python 中使用 Spark 的可能解决方案 -
archive = zipfile.ZipFile(archive_path, 'r')
file_paths = zipfile.ZipFile.namelist(archive)
for file_path in file_paths:
urls = file_path.split("/")
urlId = urls[-1].split('_')[0]
【问题讨论】:
-
嗨@AbhishekChoudhary - 以下哪种解决方案最适合您?谢谢。
-
使用spark API,读取单个RDD中保存的所有文件,然后使用不同的过滤机制对数据进行分区
-
解压缩文件本质上是一个单线程过程——在 Spark 中这样做不是浪费资源吗?
-
曾经是,但现在 API 也可以在 Spark 中读取压缩文件。
标签: scala apache-spark pyspark