Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark 在databricks上提取tar.gz_Pyspark_Extract_Tar_Databricks - Fatal编程技术网

Pyspark 在databricks上提取tar.gz

Pyspark 在databricks上提取tar.gz,pyspark,extract,tar,databricks,Pyspark,Extract,Tar,Databricks,我试图在我们的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/ 以

我试图在我们的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\u存档(路径,路径,gz)

他们都开始了,然后一直挂着。只有当我使用最大的默认集群时,它才能工作,但我觉得它也应该在较小的集群中工作(因为它可以在我的笔记本电脑上工作)

差异集群:

  • 第一组
    • 工人类型:
      • 14.0 GB内存,4核,0.75 DBU标准\U DS3\U v2
      • 最少工作人员2最多工作人员8
  • 第2组
    • 工人类型:
      • 28.0 GB内存,4核,1个DBU标准\U DS3\U v2
      • 工人8
任何建议,让它在较小的工作将不胜感激


编辑:我再次找到这个问题并找到了答案。您可以使用单个节点为此创建自定义集群。然后它就可以正常工作。

当您使用
%sh
或任何Python库时,不管您有多少工人,工作都只在驱动程序节点上完成。 我怀疑问题在于您有很多文件,将数据解包到DBFS可能是一个瓶颈

我建议首先尝试将数据解压到本地磁盘,然后将解压后的文件移动到DBFS

tarxvzf/dbfs/…/file.tar.gz-C/tmp/unpacket
然后移动:

dbutils.fs.mv(“文件:/tmp/unpacket”,“dbfs:/tmp/”,True)
从这个角度看,Databricks似乎无法处理提取tar文件的问题。