Я пытаюсь подключиться к базе данных sql server с помощью проверки подлинности Windows из кластера hadoop с использованием pyspark, но у меня возникли проблемы.Может кто-нибудь помочь, пожалуйста?
Я пытался указать доменное имя и пароль, но это не сработало.
Код:
DF = spark.read.format("jdbc") \
.option("url", "jdbc:sqlserver://SERVERNAME;database=DBNAME") \
.option("dbtable", "TABLENAME") \
.option("user", "DOMAIN\USERID") \
.option("password", "PWD") \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver").load()
Ошибка:
Py4JJavaError: An error occurred while calling o611.load.
: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user
'domain\userid'. ClientConnectionId:d1532bb7-8b63-4dc0-920f-87205fb0289a
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4545)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3406)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3370)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7347)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:618)
at org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper.connect(DriverWrapper.scala:45)
Я также попробовал Integrasecurity = true, но это не сработало, так как наш кластер Hadoop не на том жедомен в качестве сервера sql db.Я также пробовал '/' вместо '\' после доменного имени.