如何解决在数据砖上提取tar.gz
我正在尝试在我们的databricks环境中提取大约5 gig(内容大约为35)的tar.gz。 我尝试用:
提取它tar = tarfile.open(blob_storage_location','r:gz')
tar.extractall()
tar.close()
也将其复制到我们的databricks环境中,然后进行尝试。
也尝试过:
%sh
tar xvzf $(find /dbfs/tmp/ -name '*.tar.gz' -print ) -C /dbfs/tmp/
并且:
shutil.unpack_archive(path,path,gz)
它们全部开始,然后继续悬挂。仅当我使用最大的默认群集时,它才能工作,但我认为它也应该在较小的群集中工作(因为它可以在笔记本电脑上使用)。
差异簇:
- 集群1
- 工人类型:
- 14.0 GB内存,4核,0.75 DBU Standard_DS3_v2
- 最小工人数2最大工人数8
- 工人类型:
- 集群2
- 工人类型:
- 28.0 GB内存,4核,1 DBU Standard_DS3_v2
- 工人8
- 工人类型:
任何将其用于较小型的建议都将不胜感激。
解决方法
当您使用 %sh
或任何 Python 库时,您拥有多少工人并不重要 - 工作仅在驱动程序节点上完成。
我怀疑问题在于您有很多文件,将数据解包到 DBFS 可能是一个瓶颈。
我建议先尝试将数据解压到本地磁盘,然后将解压的文件移动到 DBFS。
tar xvzf /dbfs/..../file.tar.gz -C /tmp/unpacked
然后移动:
dbutils.fs.mv("file:/tmp/unpacked","dbfs:/tmp/",True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。