使用 Databricks ODBC 驱动程序管理 Unity Catalog 卷中的文件
本文介绍如何使用 Databricks ODBC 驱动程序上传、下载和删除 Unity Catalog 卷中的文件。
要求
- Databricks ODBC 驱动程序 2.8.2 或更高版本。
- 默认情况下,本机查询模式处于启用状态。 否则,请将
UseNativeQuery
属性添加到 ODBC 连接字符串,并将其值设置为1
或2
。
上传文件
若要将文件上传到卷,必须将 StagingAllowedLocalPaths
属性添加到 ODBC 连接字符串,从而将此属性的值设置为要上传的文件的路径。 若要从不同的位置上传多个文件,请将此属性设置为使用逗号分隔的路径列表,例如 /tmp/,/usr/tmp/
。
若要覆盖指定上传位置中任何现有文件的内容,请添加 OVERWRITE
。
以下 Python 代码片段演示了如何将文件上传到卷。
conn_string = "".join([
"DRIVER=", os.getenv("ODBC_DRIVER", "/Library/simba/spark/lib/libsparkodbc_sbu.dylib"),
";Host=", os.getenv("ODBC_HOST_NAME", "<<HOST_NAME>>"),
";PORT=443",
";HTTPPath=", os.getenv("ODBC_HTTP_PATH", "/sql/1.0/endpoints/1234567890"),
";AuthMech=11",
";SSL=1",
";ThriftTransport=2",
";SparkServerType=3",
";Auth_Flow=0",
";Auth_AccessToken=", os.getenv("API_TOKEN", "<<NO_ACCESS_TOKEN_IS_SET>>"),
";StagingAllowedLocalPaths=", "/tmp"),
os.getenv("ODBC_OPTIONS", ""),
])
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("PUT '" +
"/tmp/my-data.csv" +
"' INTO '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' OVERWRITE")
下载文件
以下 Python 代码片段演示了如何从卷下载文件。
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("GET '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' TO '" +
"/tmp/my-downloaded-data.csv" +
"'")
删除文件
以下 Python 代码片段演示了如何从卷删除文件。
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")