Сведения о среде
- Версия среды выполнения Databricks: 10.4 LTS (включает Apache Spark 3.2.1, Scala 2.12)
- Драйвер NetSuite JDBC Версия: 2021.2
- Версия PySpark: 3.2.1
- Успешное подключение к NetSuite с помощью DBVisualizer путем установки драйвера JDBC (JAR) и генерации пароля с одноразовым хешированием NONCE.
- Попытка использовать тот же URL-адрес, JAR и пароль (с использованием NONCE) в PySpark внутри Databricks.
При запуске кода PySpark возникает следующая ошибка:
Код: Выделить всё
SparkException: Job aborted due to stage failure: Task 0 in stage 36.0 failed 4 times, most recent failure: Lost task 0.3 in stage 36.0 (TID ***) (*** executor 1): java.sql.SQLException: [NetSuite][SuiteAnalytics Connect JDBC Driver][OpenAccess SDK SQL Engine]Failed to login using TBA. Error ticket# m3z*********cp2f[232]
Вот код PySpark, который я использую для установления соединения:
Код: Выделить всё
pwd = generate_tba_password(account_id, consumer_key, token_id, consumer_secret, token_secret)
# Construct the JDBC URL
jdbc_url = f"jdbc:ns://{host}:{port};ServerDataSource=NetSuite2.com;Encrypted=1;NegotiateSSLClose=false;" \
f"CustomProperties=(AccountID={account_id};RoleID={role_id};AuthType=TOKEN;" \
f"TokenID={token_id};TokenSecret={token_secret};ConsumerKey={consumer_key};ConsumerSecret={consumer_secret})"
# Read data from NetSuite
df = spark.read.format("jdbc") \
.option("url", jdbc_url) \
.option("User", "TBA") \
.option("Password", pwd) \
.option("driver", "com.netsuite.jdbc.openaccess.OpenAccessDriver") \
.option("dbtable", "customer") \
.load()
df.show()
- Проверил, что функцияgenerate_tba_password создает правильный формат пароля.
- Пробывал разные комбинации в строке CustomProperties, в том числе:
- Удаление RoleID
- Изменение AuthType на «NLAuth» вместо "TOKEN"
- Убедился, что JAR-файл драйвера JDBC правильно установлен в среде Databricks.
- Правильна ли конструкция URL-адреса JDBC для NetSuite при использовании PySpark?
- Известны ли какие-либо проблемы с Аутентификация на основе токенов (TBA) в PySpark для подключений NetSuite?
- Нужны ли какие-либо конфигурации Databricks для подключений NetSuite JDBC, которые отличаются от стандартных подключений JDBC?
- Могут ли возникнуть проблемы с тем, как Databricks обрабатывает генерацию паролей на основе NONCE?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -using-tba
Мобильная версия