Считать таблицу mariaDB4J в набор данных Spark с использованием JDBC - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь прочитать таблицу из MariaDB4J через jdbc, используя следующую команду:

Dataset<Row> jdbcDF = spark.read()
                    .format("jdbc")
                    .option("url", url)
                    .option("dbtable", String.format("SELECT userID FROM %s;", TableNAME))
                    .load();

Я получаю следующую ошибку:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT userID FROM MYTABLE; WHERE 1=0' at line 1

Я не уверен, откуда ГДЕ и почему я получаю эту ошибку ... Спасибо

1 Ответ

0 голосов
/ 08 мая 2018

Второй параметр, указанный в опции dbtable, неверен. Вместо того, чтобы указывать SQL-запрос, вы должны либо использовать имя таблицы с указанием схемы или допустимый SQL-запрос с псевдонимом.

Dataset<Row> jdbcDF = spark.read()
                      .format("jdbc")
                      .option("url", url)
                      .option("dbtable", String.format("(SELECT userID FROM %s) as table_alias", tableNAME))                
                      .load();

Ваш вопрос похож на этот , так что извините, если я процитирую себя :

Причина, по которой вы видите странно выглядящий запрос WHERE 1 = 0, заключается в том, что Spark пытается вывести схему вашего фрейма данных без загрузки каких-либо фактических данных. Этот запрос гарантированно никогда не даст никаких результатов, но метаданные результата запроса могут использоваться Spark для получения информации о схеме.

...