データをフェッチヘルプスパークにimaplaを使用して対話jupyter上のローカルインタラクティブな環境と火花を有効に失敗しました
pyspark.sqlのインポートSparkSession jdbc_url = " JDBC:インパラ://data1.hundun-new.sa:21050 / RAWDATA; UseNativeQuery = 1 " スパーク = SparkSession.builder \ .appName(" SA-試験" )\ 管理組織のビー玉(" ローカル" )\ .getOrCreate() #のプロパティ= { # "ドライバ": "com.cloudera.ImpalaJDBC41"、 # "AuthMech": "1"、 # # "KrbRealm": "EXAMPLE.COM"、 #1 #」 KrbHostFQDN ": "impala.example.com"、 # "KrbServiceName": "インパラ" #} #イベントからのC日付= CURRENT_DATE()GROUP BY 1 AS DF = spark.read.jdbc(URL = jdbc_url、テーブル= "(/ * SA(デフォルト)* / SELECT日付、イベント、COUNT(*)、 2) ") DF = spark.read.jdbc(URL = jdbc_url、テーブル= " (/ * SA(生産)* / SELECT日付、イベント、COUNT(*)日付= CURRENT_DATE())イベントからC AS 」) df.select(DF [ ' 日付' ]、DF [ ' イベント' ]、DF [ ' C ' ] * 10000 ).SHOW() y4JJavaError:エラーが発生しながらo32.jdbc呼び出します。 :ます。java.sql.SQLException:いいえ、適切なドライバ java.sql.DriverManager.getDriverで(DriverManager.java: 315 ) org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions $$ anonfun $で 6.apply(JDBCOptions.scala:105 ) org.apacheで。 spark.sql.execution.datasources.jdbc.JDBCOptions $$ anonfun $ 6.apply(JDBCOptions.scala:105 ) scala.Option.getOrElse(Option.scala:時 121 ) org.apache.spark.sql.execution.datasourcesで.jdbc.JDBCOptions。<初期化>(JDBCOptions.scala:104 ) org.apache.spark.sql.execution.datasources.jdbc.JDBCOptionsました。<初期化>(JDBCOptions.scala:35 ) org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.sで
あなたは明確に報告されたエラー・ノー最適なドライバを見ることができない、我々は通常の動作にインパラにJDBCドライバを追加する必要があります。
まず、インパラのJDBCドライバをダウンロードしてください
http://repo.odysseusinc.com/artifactory/community-libs-release-local/com/cloudera/ImpalaJDBC41/2.6.3/ImpalaJDBC41-2.6.3.jar
私たちは、その後、SSへの適用時にcnofigによってインパラドライバのパスを指定します
pyspark.sqlのインポートSparkSession jdbc_url = " JDBC:インパラ://data1.hundun-new.sa:21050 / RAWDATA; UseNativeQuery = 1 " スパーク = SparkSession.builder \ .appName(" SA-試験" )\ 管理組織のビー玉(" ローカル" )\ .configを(' spark.driver.extraClassPath '、' /usr/share/java/ImpalaJDBC41-2.6.3.jar ' )\ .getOrCreate()
ここで私はstackoverflowの上の別の方法を見つけます
EDIT
回答 IPythonノートブックにジャーdependenicesをロードする方法は、 すでに私は自分自身を共有リンクに記載されている、と私のための仕事をしませんされています。私はすでにノートPCからの環境変数を設定してみました:
import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--driver-class-path /path/to/postgresql.jar --jars /path/to/postgresql.jar'
私はそれを指定し、pysparkシェルを実行したときにそれがうまく動作しますので、ファイルパスまたはファイル自体に何も間違っているがあります。
参照:
https://spark.apache.org/docs/latest/configuration.htmlスパーク設定
https://stackoverflow.com/questions/51772350/how-to-specify-driver-class-path-when-using-pyspark-within-a-jupyter-notebook使用している場合、ドライバのクラスパスを指定する方法jupyterノートブック内pysparkを?