Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается, как отправлять, скачивать и удалять файлы в томах каталога Unity с помощью драйвера ODBC Databricks.
Требования
- Databricks ODBC Driver версии 2.8.2 или более поздней
- Режим нативного запроса включен (по умолчанию). При отключении добавьте
UseNativeQuery=1илиUseNativeQuery=2в строку подключения.
Полный пример Python с настройкой проверки подлинности см. в статье "Подключение Python и pyodbc к Azure Databricks".
Отправка файла
Чтобы загрузить файл, добавьте свойство StagingAllowedLocalPaths в строку подключения с путем к файлу для загрузки. Для нескольких исходных расположений используйте разделенный запятыми список (например, /tmp/,/usr/tmp/).
Это важно
В многоарендных средах, где пользователи управляют URL-адресом ODBC (например, в инструментах бизнес-аналитики или службах разработчиков), установите StagingAllowedLocalPaths на локальный адрес Sandbox или на несуществующий путь. Это предотвращает пользователей от записи произвольных файлов и вмешательства во внутреннее развертывание службы.
Чтобы перезаписать существующий файл, добавьте OVERWRITE его в инструкцию.
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")
Скачивание файла
Используется GET для скачивания файла из тома в локальный путь:
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" +
"'")
Удаление файла
Используется REMOVE для удаления файла из тома:
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")