我正在尝试读取位于wasp位置的zip文件,并使用文件名和文件内容创建df。 Rach zip文件有多个.rcv文件。
我尝试过这样做,但它将所有文件的内容都作为rdd,而不是我想要的。
以下代码将zipfile名称及其文件内容作为键值对。我期望的是将单个文件名及其内容作为键值对
例如: ACARS 20170507 / file1.rcv“文件内容为字符串”
ACARS 20170507 / file2.rcv“文件内容为字符串”
def zip_extract(x):
in_memory_data = io.BytesIO(x[1])
file_obj = zipfile.ZipFile(in_memory_data, "r")
files = [i for i in file_obj.namelist()]
return dict(zip(files, [file_obj.open(file).read() for file in files]))
zips = sc.binaryFiles("hdfs://ACARS 20170507.zip")
files_data = zips.map(zip_extract).collect()