如何在mySQL中保存数据集<row>?

时间:2017-07-05 06:53:45

标签: azure apache-spark apache-spark-sql spark-dataframe azure-data-lake

我在我的场景中使用spark独立群集。我想阅读从Azure数据湖中读取一个JSON文件并使用SparkSQL并对其进行一些查询并将结果保存到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();
    }
}

1 个答案:

答案 0 :(得分:0)

您需要先定义连接属性和jdbc网址。

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