微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何并行化 Databricks 文件复制/上传操作?

如何解决如何并行化 Databricks 文件复制/上传操作?

我在 Microsoft Azure 上运行 Databricks。我正在使用名为 google-cloud-storage 和 google-cloud-core 的 python 库将所有​​文件从 Databricks dbfs 路径复制到 GCP/GCS 存储桶(谷歌云平台/谷歌云存储存储桶)。我使用 PyPl 安装了这些库,并且使用了 google-cloud-storage python 库中的“upload_from_filename”命令。源目录包含数百个文件文件总量超过 100 GB。文件复制/上传成功,但复制/上传操作一个一个,一次一个文件

我的问题是:如何强制 Databricks“并行化”复制/上传操作(即在多个线程中异步执行复制操作)?

以下是我的代码(为了清晰起见,修改了gcp存储桶名称和源文件路径)

from google.cloud import storage
from datetime import datetime

storage_client = storage.Client()
bucket = storage_client.bucket('the-gcp-bucket')
files = dbutils.fs.ls('dbfs:/sourcefilepath/')
filenumber = 0

for fi in files:
  source_file_name = fi.path
  source_file_name = source_file_name.replace("dbfs:","/dbfs")
  blob = bucket.blob('TargetSubFolder/' + fi.name)
  blob.upload_from_filename(source_file_name)
  filenumber = filenumber + 1
  print("File num: {} {} uploaded to {}.".format(str(filenumber),source_file_name,destination_blob_name))
  
print("File copy Complete")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。