2015-09-07 139 views
0

我有一個包含三個記錄的以下兩列(id,Status)的mysql表(組合)。使用Spark Dataframe更新Mysql列值

+----+--------+ 
| Id | Status | 
+----+--------+ 
| 1 |  0 | 
| 2 |  1 | 
| 3 |  3 | 
+----+--------+ 

我想更新從0狀態列1 ID = 1

我試圖在火花階是什麼:

val portfolio_id =1 
    val dbUrl ="jdbc:mysql://localhost:3306/test?user=root&password=root" 
    val prop = new java.util.Properties 
    prop.setProperty("user","root") 
    prop.setProperty("password","root") 

    val sqlContext = new org.apache.spark.sql.SQLContext(sc) 

    val portfolioDF=sqlContext.read.jdbc(dbUrl,"portfolio",prop)  
    portfolioDF.registerTempTable("portfolioDF") 
    val results =sqlContext.sql("SELECT status from portfolioDF where  id="+portfolio_id) 
    //display the record 
    results.show() 

    //results.insertIntoJDBC(dbUrl, "portfolio", true); 

現在我該怎樣使用「結果「數據框來修改」狀態「列值。 或者有任何其他的方式,我可以通過數據框修改mysql列值。 任何指導將有幫助

在此先感謝。

回答

0

我想更新從0狀態列,1爲ID = 1

對於更新使用UPDATESELECT

UPDATE portfolioDF 
SET status = 1 
WHERE id = 1; 
+0

忘記提到,我已經嘗試上述更新命令我收到的錯誤是線程「main」中的異常java.lang.RuntimeException:[1.1]失敗:與''預期但標識符更新發現 UPDATE portfolioDF SET status = 1 WHERE id = 1; – user3792686