如何将 Databricks 中的字节对象移动到例如S3

How to move a byteobject in Databricks to e.g. S3

我在 Databricks/Python 工作,我有一个由参数“byte_object”给出的字节对象,我想将它移动到 S3 位置 s3_path。对于路径为 dbfs_path 的 DBFS 存储中的保存对象,可以像这样完成:

dbutils.fs.mv(dbfs_path, s3_path)

但我的问题是我想将字节对象移动到 S3,由我在 Python 中的参数“byte_object”给出。不是存储在 DBFS 中的文件,有什么办法吗?

如果您的字节对象可以表示为字符串,那么您可以直接使用 dbutils.fs.put (doc)。

否则,您可以将该字节对象写入本地文件,然后使用dbutils.fs.mv将其移动到S3,如下所示:

local_file = "/tmp/local_file"
with open(local_file, "wb") as f:
  f.write(byte_object)

dbutils.fs.mv(f"file:{local_file}", s3_path)

这里的主要内容是您需要将本地文件指定为 file:/__path__,而不仅仅是 __path__ - 它将在没有该前缀的 DBFS 上搜索。