Кластер Databricks «файл не найден» при доступе к томамPython

Программы на Python
Anonymous
Кластер Databricks «файл не найден» при доступе к томам

Сообщение Anonymous »

Я использую кластер общих вычислений Databricks (DBR 15.2) для подключения к базе данных Oracle с помощью драйвера JDBC. Для подключения мне нужно указать расположение хранилища доверенных сертификатов. Мой предпочтительный вариант — разместить хранилище доверенных сертификатов в томе. Я получаю сообщение об ошибке, сообщающее, что файл не найден, хотя он существует.
Это мой текущий код для подключения к Oracle:

Код: Выделить всё

url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(PORT=xxxx)(HOST=xxxx))(CONNECT_DATA=(SID=xxx)))"

df = (
spark.read.format("jdbc")
.option("url", url)
.option("dbTable", "schema.table")
.option("user", "user")
.option("password", dbutils.secrets.get(scope = "oracle", key = "password"))
.option("driver", "oracle.jdbc.driver.OracleDriver")
.option("fetchsize", 2000)
.option("javax.net.ssl.trustStoreType", "JKS")
.option("javax.net.ssl.trustStore", "/Volumes/test_catalog/test_schema/test_volume/oracle_truststore.jks")
.option("javax.net.ssl.trustStorePassword", dbutils.secrets.get(scope = "oracle", key = "truststore_pw"))
.load()
)

Я получаю следующую ошибку:

Код: Выделить всё

(java.sql.SQLRecoverableException) IO Error: IO Error PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target, Authentication lapse 0 ms.
Я вижу хранилище доверенных сертификатов, когда использую ls:

Код: Выделить всё

%sh
ls /Volumes/test_catalog/test_schema/test_volume
oracle_truststore.jks
Я являюсь владельцем файла и имею необходимые разрешения.
Кто-нибудь знает, что я делаю неправильно или что может сработать?< /p>
В качестве обходного пути я сохранил хранилище доверенных сертификатов в dbfs. Но это решение работает только с кластерами персональных вычислений, поскольку dbfs недоступен в кластере общих вычислений. В любом случае я бы предпочел не хранить этот файл в dbfs, поскольку я не могу контролировать доступ.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-volumes

Вернуться в «Python»