我正在尝试将位于azure datalake中的csv压缩为zip。该操作是使用datricks中的python代码完成的,我在其中创建了一个挂载点以将dbfs与datalake直接关联。
这是我的代码:
import os
import zipfile
csv_path= '/dbfs/mnt/<path>.csv'
zip_path= '/dbfs/mnt/<path>.zip'
with zipfile.ZipFile(zip_path, 'w') as zip:
zip.write(csv_path) # zipping the file
但是我收到了这个错误:
OSError: [Errno 95] Operation not supported
有什么办法吗?
提前感谢。
在重现此内容时,我在下面遇到了相同的错误。
但是我可以将csv文件压缩成zip格式,方法是先转换成dataframe,然后再转换成zip格式,如下所示。
df=spark.read.csv("dbfs:/mnt/ok/csv1.csv")
df.coalesce(1).write.option("compression","gzip").csv("/dbfs/mnt/ok/myzip2.zip")
请不要与上面的csv路径混淆,在这里我错误地使用了ADLS的另一个csv。
但是coalesce将zip中的文件名作为部分名称。要重命名它,请使用dbuits.fs.mv(old_path,new_path)
ls
old_name = r"/dbfs/mnt/ok/myzip2.zip/part-00000-tid-1285084120372550072-c8b0b7bd-b3b4-4432-8575-4e33e5328ec9-6-1-c000.csv.gz"
new_name=r"/dbfs/mnt/ok/myzip2.zip/mycsv.csv.gz"
dbutils.fs.mv(old_name, new_name)
上面的代码是由亚历克斯·奥特从这个线程引用的。
不,这不可能像你那样做。主要原因是本地DBFS API有局限性——它不支持创建zip文件时所需的随机写入。
解决方法是将zip文件输出到驱动程序节点的本地磁盘,然后使用dbutils.fs.mv
将文件移动到DBFS,如下所示:
import os
import zipfile
csv_path= '/dbfs/mnt/<path>.csv'
zip_path= '/dbfs/mnt/<path>.zip'
local_path = '/tmp/my_file.zip'
with zipfile.ZipFile(local_path, 'w') as zip:
zip.write(csv_path) # zipping the file
dbutils.fs.mv(f"file:{local_path}", zip_path)
问题内容: 我正在下载包含XML的压缩文件,由于延迟要求,我希望避免在操作之前将zip文件写入磁盘。但是,这不足以满足我的需求。没有办法说“这是一个zip文件的字节数组,请使用它”而不将其转换为流,并且它不可靠,因为它会扫描条目标头(请参阅EDIT下面的讨论,以了解为什么它不可靠)。 我尚无法访问要处理的zip文件,因此我不知道我是否能够通过来处理它们,因此我需要找到一种适用于任何有效ZIP文件的
我使用Ubuntu OS中的RawTherapee应用程序将RAW文件转换为TIF。 是否存在任何专有问题或与Adobe名称使用有关的任何问题?我喜欢使用开源工具和应用程序。请把你关心的问题告诉我。
我一直在寻找这个问题,但我找不到任何我可以使用的回应。 并合并到zip中以进行压缩(根据https://docs.oracle.com/javase/8/docs/api/java/util/zip/ZipOutputStream.html#setMethod-int-,ZipEntry中的DEFLETED)。在这种情况下,如何? 我从谷歌和其他搜索者那里获得的关于用java压缩zip文件的大部分
本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip
我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?
我有一个包含一些子目录的目录。我可以看到目录中带有“gci-Recurse *| %{ Write-host$_}”的文件。在这个给定的列表中有一些zip文件。我想在使用“展开存档”时将这些zip文件解压缩到一个名为zip文件的目录中。 如何将调用“gci-Recurse*|%{write host${}”与“Expand Archive”结合起来。