如何将 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 上搜索。
我在 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 上搜索。