Как читать данные из mariadb, используя Spark Java - PullRequest
0 голосов
/ 09 октября 2018

Мне нужно прочитать таблицу из MariaDB с помощью Spark и Java.

Я написал код Java для чтения данных таблицы из базы данных. Соединение успешно установлено, но при чтении данных возникает ошибка.Я пытаюсь прочитать данные таблицы в качестве кадра данных.Но имя столбца отображается как значение столбца в результате.найдите приведенный ниже код:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import static org.apache.spark.sql.functions.col;

public class mariadb_to_csv {    
public static void main(String[] args) {

    Properties prop = new Properties();
    String resourceName = "config.properties";
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        try(InputStream resourceStream = loader.getResourceAsStream(resourceName)) {
            prop.load(resourceStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    SparkSession spark = SparkSession.builder()
            .appName("Java Spark SQL basic example")
            .config("spark.some.config.option", "some-value").getOrCreate();

    Dataset<Row> jdbcDF = spark.read().format("jdbc")
            .option("url","url_address")
            .option("driver", "org.mariadb.jdbc.Driver")
            .option("dbtable", "source_table")
            .option("user", "username")
            .option("password", "password")
            .load();
    jdbcDF.select(col("code"), col("name"), col("isActive"), col("createdByUser"), col("modifiedByUser")).show();       


     }
     }  

В результате значение столбца дублируется в имени столбца.

error image

Что не такс этим?

1 Ответ

0 голосов
/ 08 ноября 2018

Кажется, есть проблема с разъемом "maridb".Изменение URL-адреса хоста с "jdbc: mariadb : // $ {Hostname}: $ {Port} / $ {Database}" на "jdbc: mysql : // $ {Hostname}: $ {Port} / $ {Database} "решил эту проблему для меня.

MariaDB и Databricks также использовали« jdbc »в качестве URL-адреса соединения, чтобы объяснить, как читать данные из Mariadb с помощью Spark.

  1. https://mariadb.com/kb/en/library/mariadb-columnstore-with-spark/#usage

  2. https://docs.databricks.com/spark/latest/data-sources/sql-databases.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...