2016-08-19 29 views
0

次のコードを使用して、スパークデータフレームをJDBC接続を介してインパラントに書き出します。インパラデータベースにスパークデータフレームを書き込む方法

df.write.mode("append").jdbc(url="jdbc:impala://10.61.1.101:21050/test;auth=noSasl",table="t_author_classic_copy", pro) 

しかし、私は次のエラーを取得:ます。java.sql.SQLExceptionを:

df.write.mode("overwrite").jdbc(url="jdbc:impala://10.61.1.101:21050/test;auth=noSasl",table="t_author_classic_copy", pro) 

が、それはまだエラーを取得:

んが、適切なドライバが、その後、私はモードを変更

を認めませんでした

CAUSED BY: Exception: Syntax error 
), Query: CREATE TABLE t_author_classic_copy1 (id TEXT NOT NULL, domain_id TEXT NOT NULL, pub_num INTEGER , cited_num INTEGER , rank DOUBLE PRECISION). 
+0

* * "いいえ、適切なドライバが見つかりませんでした" - きわめて明確。 Cloudera WebサイトからImpala JDBCドライバをダウンロードしましたか?それをSparkを実行するマシンにデプロイしましたか?JARをSpark CLASSPATHに追加しましたか?(たとえば、 'spark-defaults.confの' spark.driver.extraClassPath'エントリ'? –

+0

はい、Clouderaからドライバをダウンロードして、impalaからデータを読み込むためにJDBCを使用できますが、dataframeのwrite関数を呼び出すと、エラーが発生しました –

答えて

0

これは私のために働く:

火花シェル--driverクラスパスImpalaJDBC41.jar --jars ImpalaJDBC41.jar

val jdbcURL = s"jdbc:impala://192.168.56.101:21050;AuthMech=0" 

val connectionProperties = new java.util.Properties() 

import org.apache.spark.sql.SaveMode 

sqlContext.sql("select * from my_users").write.mode(SaveMode.Append).jdbc(jdbcURL, "users", connectionProperties) 
+0

適切な字下げを使用してコードを書式設定してくださいスペース) – Luuklag

+0

実際には、質問は 'df'というデータフレームに関するものだったので、答えはspark SQLテーブル' df.write.mode(... ' –

関連する問題