- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Amazon s3 中存储了 zip 文件,然后我有一个 Python 列表为 ["s3://mybucket/file1.zip", ..., "s3://mybucket/fileN.zip"]
,我需要使用 Spark Cluster 解压缩所有这些文件,并将所有 CSV 文件存储到增量格式表中。我想知道比我目前的方法更快的处理方法:
1) 我有一个 领用于在我的 Python 列表中进行迭代。
2) 我正在使用 Python Boto3 从 s3 获取 zip 文件 s3.bucket.Object(file)
3)我正在使用下一个代码解压缩文件
import io
import boto3
import shutil
import zipfile
for file in ["s3://mybucket/file1.zip", ..., "s3://mybucket/fileN.zip"]:
obj = s3.bucket.Object(file)
with io.BytesIO(obj.get()["Body"].read()) as tf:
tf.seek(0)
with zipfile.ZipFile(tf, mode='r') as zipf:
for subfile in zipf.namelist():
zipf.extract(subfile, outputZip)
dbutils.fs.cp("file:///databricks/driver/{0}".format(outputZip), "dbfs:" + outputZip, True)
shutil.rmtree(outputZip)
dbutils.fs.rm("dbfs:" + outputZip, True)
dbutils.fs.cp()
将所有这些 csv 文件移动到 DBFS |
df = self.spark.read.option("header", "true").csv("dbfs:" + file)
df.write.format("delta").save(path)
最佳答案
好吧,多种可能的解决方案可能是:
df=spark.read.csv("s3://mybucket")
一起读取所有文件(如果架构允许)并使用 df.write.format("delta").save(path)
将数据帧写为增量 import io
import boto3
import shutil
import zipfile
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("name").getOrCreate()
schema = StructType([
\\ YOUR DATA SCHMEA
])
df = spark.createDataFrame([], schema)
for file in ["s3://mybucket/file1.zip", ..., "s3://mybucket/fileN.zip"]:
obj = s3.bucket.Object(file)
with io.BytesIO(obj.get()["Body"].read()) as tf:
tf.seek(0)
with zipfile.ZipFile(tf, mode='r') as zipf:
for subfile in zipf.namelist():
zipf.extract(subfile, outputZip)
tempdf = spark.read.option("header", "true").csv(outputZip)
df = df.union(tempdf)
df.write.format("delta").save(path)
关于python - PySpark 解压文件 : Which is a good approach for unzipping files and storing the csv files into a Delta Table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628626/
我有一个包含许多 zip 文件的文件夹。我需要获取这些 zip 文件中的任何一个,将其解压缩并从压缩文件中获取特定文件。我为此使用 IO::Uncompress::Unzip 模块。我的 perl 脚
如果我有一个三元组列表,我想要三个单独的列表。还有比这更好的方法吗: (listA, listB, listC) = (list.map(_._1), list.map(_._2). list.map
有人可以帮我移植我的代码吗void * uzFile = unzOpen("zip 文件名"); 使用 minizip 中的 unzOpenCurrentFilePassword 吗?我想用密码保护我
我编写了一段简单的代码,用于使用 unzip 提取 zip 文件。当未设置输出目录时它工作正常但返回错误是目录已设置 "Archive: /home/vishvesh.kumar/tempFolder
我正在尝试解压缩位于 Android 设备的 SDCARD 上的文件。如果 ZIP 文件只包含文件而不包含文件夹,则一切正常。但是,我希望应用程序解压缩的生产文件包含多个目录和子目录。这是我遇到问题的
您好,我已经从 Windows 7 创建并将其放入服务器。现在我正在将文件从服务器下载到我的 SD 卡中。但是当我开始解压缩时它显示错误, java.util.zip.ZipException: E
我正在尝试使用 yauzl 解压缩文件。然而 example in the repo不显示如何解压缩到文件夹。它只是说: readStream.pipe(somewhere); 有没有一种简单的方法可
我有一个 foo: seq 我想拆分元组项,然后将结果存储到两个变量中,每个变量是 seq 我想知道是否有更漂亮的方法来做到这一点,例如 let item1, item2 = foo |> ?????
标准库在List上提供了unzip方法: scala>val l = List((1, "one"), (2, "two"), (3, "three"), (4, "four"), (5, "five
Minizip 有没有办法直接从缓冲区中提取文件?通常你会使用一个 unzFile 实例,但这对我来说不是一个选项(我直接在缓冲区中获取压缩数据,我不从磁盘读取它)。 最佳答案 来自 the auth
本文整理了Java中jodd.io.ZipUtil.unzip()方法的一些代码示例,展示了ZipUtil.unzip()的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 6年前关闭。 Improve this
因此,我有这个元组列表(n = 2),我应该“解压”巫婆,然后创建一个新的列表,如下所示:对于类似val的元组列表,它=(1,“一个”):: (2,“two”):: nil:(int,string)a
我有以下代码,其中 fac 返回 (MyType, OtherType): let l = (-1..13).map(|x| { fac(x).0 }).collect::>(); 它有效,但
我有几个zip文件,我想在其他路径中解压缩,只解压缩具有某些特征的文件,所以我在linux中执行以下命令: unzip -q -o ./path1/*/"*.zip" Key/* -d /path2/
我的程序使用 HTTP 通过网络读取 gzipped 文件。 我需要我的程序能够解压缩内容并解析它,即使不是所有的 gzip 文件都到达了。 可以吗? 如果是这样,可以用 C++ 完成吗?如果是,怎么
我发现以下行为出乎意料: $ mkdir tmp && cd tmp/ $ for example in a b c ; do echo $example > $example.txt ; done
我正在使用 npm 的 unzip 模块来提取 zip 存档的内容。我需要知道它何时完成提取以及文件已完全写入磁盘。 我的代码: fs.createReadStream('master.zip').p
本文整理了Java中io.fabric8.utils.Zips.unzip()方法的一些代码示例,展示了Zips.unzip()的具体用法。这些代码示例主要来源于Github/Stackoverflo
本文整理了Java中org.jboss.as.patching.ZipUtils.unzip()方法的一些代码示例,展示了ZipUtils.unzip()的具体用法。这些代码示例主要来源于Github
我是一名优秀的程序员,十分优秀!