【发布时间】:2019-07-23 05:59:59
【问题描述】:
我正在尝试从 zip 文件中读取 csv 数据,我知道 spark.read.csv() 中自然支持 .gz 文件,但这是一个 zip 文件
How to open/stream .zip files through Spark? 我检查了上述问题并尝试使用它,但不确定如何将 RDD(表示为文本行的 csv 数据的整个文件)parse 转换为 CSV 数据框
这是用于将数据提取到 RDD 的代码段
import zipfile
import io
def zip_extract(x):
file_path, content = row
z_file = zipfile.ZipFile(io.BytesIO(content), "r")
files = [i for i in z_file.namelist()]
return z_file.open(files[0]).read()
zips = sc.binaryFiles("/path/to/some/zipfiles.zip")
data_rdd = zips.map(zip_extract)
将 rdd 传递给 spark.read.csv() 并没有给出预期的结果
【问题讨论】:
-
你找到了一些好的解决方案吗?
-
不,我最终添加了一个预处理步骤来提取它们,然后再传递给 spark
-
我将在接下来几天实施时发布解决方案......因为我们需要它
标签: python csv apache-spark pyspark