0

私はSpark 1.3.0を使用します 私はSparkでデータフレームを持っており、これをPostgres DB(postgresql-9.2.18-1-linux-x64)に64bit ubuntuマシン。 また、私は以下を使用してPostgresのDBからデータを読み取ることができたのpostgresspark DataFramesをPostgres DBに書き込む方法

に接続するためのドライバとしてpostgresql9.2jdbc41.jar使用することは、私は後に戻っはpostgresに、このDFを書きたい

import org.postgresql.Driver 
val url="jdbc:postgresql://localhost/postgres?user=user&password=pwd" 
val driver = "org.postgresql.Driver" 

val users = { 
    sqlContext.load("jdbc", Map(
    "url" -> url, 
    "driver" -> driver, 
    "dbtable" -> "cdimemployee", 
    "partitionColumn" -> "intempdimkey", 
    "lowerBound" -> "0", 
    "upperBound" -> "500", 
    "numPartitions" -> "50" 
)) 
} 

val get_all_emp = users.select("*") 
val empDF = get_all_emp.toDF 
get_all_emp.foreach(println) 

コマンドいくつかの処理。 これはコードの下にありますか?

empDF.write.jdbc("jdbc:postgresql://localhost/postgres", "test", Map("user" -> "user", "password" -> "pwd")) 

任意のポインタ(スカラー)が役立ちます。

+0

少なくとも、コードが正しいかどうかを確認するためにコードをテストしましたか? – eliasah

+0

こんにちは@eliasah エラーは 以下ですエラー:値書き込みはorg.apache.spark.sql.DataFrameのメンバーではありません –

+0

spark 1.3は制約ですか? 1.6.2にアップデートできませんか? – eliasah

答えて

0

以下のコードに従ってください。

val database = jobConfig.getString("database") 
val url: String = s"jdbc:postgresql://localhost/$database" 
val tableName: String = jobConfig.getString("tableName") 
val user: String = jobConfig.getString("user") 
val password: String = jobConfig.getString("password") 
val sql = jobConfig.getString("sql") 
val df = sc.sql(sql) 
val properties = new Properties() 
properties.setProperty("user", user) 
properties.setProperty("password", password) 
properties.put("driver", "org.postgresql.Driver") 
df.write.mode(SaveMode.Overwrite).jdbc(url, tableName, properties) 
+0

これはこれまでに一番説明した答えではないかもしれませんが、少なくともダウン投票した人にとっては、なぜ落選したのかについてのコメントもあります。 – eliasah

+0

@eliasah私はこれを決して投票していません。 –

+0

@VishnuJayanand私はあなたがそれを落札したと言っていませんでした。私は理由を述べた人に尋ねるだけです。 – eliasah

関連する問題