Spark не добавляет дату в предложение SQL WHERE - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь понять, как Spark загружает данные из MySQL, читая журнал MySQL.Но я обнаружил, что Spark не добавляет фильтр даты в SQL-запрос, он генерирует, где я использую метод filter ().

Вот как я загружаю данные в Spark:

Properties configProps = new Properties();
// ... properties init
SparkSession spark = SparkSession.builder().enableHiveSupport().getOrCreate();
spark.read().jdbc("jdbc:mysql://localhost/testdb", "table", configProps)
    .filter("user_id = 1 and date >= \"2019-02-01 00:00:00.000\" and date <= \"2019-02-01 23:59:59.999\"")
    .write().saveAsTable("test_table");

Что я нахожу в журнале MySQL:

SELECT * FROM table WHERE user_id = 1

Дата не добавляется в предложение WHERE.Почему это происходит?Spark пытается загрузить данные всех дат из таблицы?В моей таблице будут миллионы записей, но каждый раз нужны только тысячи.

Я также пытался заменить filter () на where (), но не повезло.

Есть ли какие-нибудьКак заставить Spark использовать все критерии, которые я указал в методе filter ()?

PS: Я не нашел на сайте Spark ничего, описывающего внутреннюю работу Spark.Какие книги и сайты рекомендуется?Спасибо!

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