インタラクティブな環境スパークでPyspark利用解決するためのタスクを提出する:ます。java.sql.SQLException:いいえ、適切なドライバ

 

データをフェッチヘルプスパークに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を?

おすすめ

転載: www.cnblogs.com/piperck/p/12056226.html