我正在解决通过jdbc连接在pyspark中写入Dataframe时收到的错误,该连接使用keytab和数据库属性参数中的principal进行kerberos身份验证。
由于我没有收到通知gss initiate failed错误,因此使用kerberos凭据通过jdbc成功启动连接,但我得到:
Illegal Argument Exception: requirement failed: JDBC connection initiated but not exactly one provider found which can handle it. Found active providers:
我运行的代码是:
df_spark.write.jdbc(url=db_props[‘url’], table=‘schema.table’, mode=‘overwrite’, properties=db_props)
仔细检查后,非法参数异常是一个py4jjavaerror,源于py4j中的java_gateway.py模块。我找不到关于这个错误的更多信息。感谢你的帮助,如果有人已经看到它或可以看出发生了什么!
1条答案
按热度按时间sy5wg1nm1#
这是一个普遍的问题,所以这是一个普遍的答案:
很好,但是老文章:https://datamountaineer.com/2016/01/15/spark-jdbc-sql-server-kerberos/
对于spark 3.1-https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
甚至一个关于jdbc中kerberos的请求:https://github.com/apache/spark/pull/24421
请尝试学习一些东西,尝试一些东西,然后问更具体的问题。