0

我在我的場景中使用了spark獨立羣集。我想閱讀從Azure數據湖中讀取JSON文件並使用SparkSQL並對其進行查詢並將結果保存到mysql數據庫中。我不知道該怎麼做。一個小的幫助將是一個偉大的。如何在spark中將數據集<Row>保存在mySQL中?

package com.biz.Read_from_ADL; 

import org.apache.spark.sql.Dataset; 
import org.apache.spark.sql.Row; 
import org.apache.spark.sql.SparkSession; 

public class App { 
    public static void main(String[] args) throws Exception { 
     SparkSession spark = SparkSession.builder().appName("Java Spark SQL basic example").getOrCreate(); 

     Dataset<Row> df = spark.read().json("adl://pare.azuredatalakestore.net/EXCHANGE_DATA/BITFINEX/ETHBTC/MIDPOINT/BITFINEX_ETHBTC_MIDPOINT_2017-06-25.json"); 

     //df.show(); 
     df.createOrReplaceTempView("trade"); 

     Dataset<Row> sqlDF = spark.sql("SELECT * FROM trade"); 
     sqlDF.show(); 
    } 
} 
+0

可能這篇文章應該幫助: - https://docs.databricks.com/spark/latest/data-sources/sql-databases.html –

回答

0

您需要先定義連接屬性和jdbc url。

import java.util.Properties 

val connectionProperties = new Properties() 
connectionProperties.put("user", "USER_NAME") 
connectionProperties.put("password", "PASSWORD") 
val jdbc_url = ... // <- use mysql url 
import org.apache.spark.sql.SaveMode 

spark.sql("select * from diamonds limit 10").withColumnRenamed("table", "table_number") 
    .write 
    .mode(SaveMode.Append) // <--- Append to the existing table 
    .jdbc(jdbc_url, "diamonds_mysql", connectionProperties) 

有關更多詳細信息,請參閱here

+0

感謝這是一個很大的幫助。 –

+0

如果有幫助,請接受答案 –

相關問題