問題タブ [spark-jdbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - Secure Sockets Layer を使用せずに、GCP で実行されている Pyspark を使用して SQL Server に接続するにはどうすればよいですか?
以下のように、PySpark を使用して SQL Server データベースに接続しようとしています。
このコードを Google Cloud Platform から実行しています。このオペレーション用のクラスタを作成し、そこにジョブを送信する Dataproc インスタンスがあります。ジョブは以下の例外で失敗します:
py4j.protocol.Py4JJavaError: o70.load の呼び出し中にエラーが発生しました。
: com.microsoft.sqlserver.jdbc.SQLServerException: ドライバーは、Secure Sockets Layer (SSL) 暗号化を使用して SQL Server への安全な接続を確立できませんでした。エラー: 「接続リセット ClientConnectionId:1223412f-9879702-wfwd-134qq-2143d123e1q」。com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate (SQLServerConnection.java:3208)
で com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL (IOBuffer.java:1916)
で com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper で(SQLServerConnection.java:2760)
com.microsoft.sqlserver.jdbc.SQLServerConnection.login (SQLServerConnection.java:2418) で com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal (SQLServerConnection.java:2265) で com.microsoft.sqlserver.jdbc.SQLServerConnection.connect (SQLServerConnection.java:1291) com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:881) で java.lang.Thread.run(Thread.java:748) 原因: java.io.IOException:接続リセット ClientConnectionId:1223412f-9879702-wfwd-134qq-2143d123e1q. com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:862) で com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:849) で com.microsoft.sqlserver.jdbc で.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:1019) com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.トレースバック (最新の呼び出しが最後):
ファイル "/tmp/portw/pattern.py"、24 行目、
connect_and_read(spark)内ファイル "/tmp/portw/pattern.py"、18 行目、connect_and_read
traceback.print_exc(type(ex), ex, ex. traceback )内ファイル「/opt/conda/default/lib/python3.8/traceback.py」、163 行目、print_exc の
print_exception(*sys.exc_info(), limit=limit, file=file, chain=chain)ファイル「/opt/conda/default/lib/python3.8/traceback.py」、103 行目、print_exception
の行の TracebackException(ファイル「/opt/conda/default/lib/python3.8/traceback.py」、509 行目、init
self.stack = StackSummary.extract(ファイル "/opt/conda/default/lib/python3.8/traceback.py"、340 行目、
制限が 0 以上の場合の抽出:TypeError: 'type' と 'int' のインスタンス間で '>=' はサポートされていません
21/02/09 13:59:59 INFO org.sparkproject.jetty.server.AbstractConnector: 停止した Spark@1aa73a6d{HTTP/1.1, (http/1.1)}
以前、URL に含まれていなかったので、encrypt=false
参考文献を見て追加しました。
プレーンな Python コードでは API の同じホストに接続できますが、Spark では接続できません。
ここで私が犯している間違いとそれを修正する方法を誰かに教えてもらえますか。
どんな助けでも大歓迎です。