Использование spark sql jdbc источника данных params dbtable и partitionColumn для запроса диапазона первичных ключей - PullRequest
0 голосов
/ 17 июня 2019

Я запрашиваю таблицу mysql со столбцом первичного ключа, используя spark. Мне не нужно читать всю таблицу, но по определенному значению первичного ключа, скажем primary_key> 5001. Но когда я использую partitionBy с верхним и нижним ограничением, один из разделов считывает данные для primary_key <5001. Я знаю, что это согласно проекту, чтобы прочитать все данные из таблицы. Но что если я захочу прочитать только ряд первичных ключей, а также разделить их, так как данные огромны. </p>

Я пробовал подобный подзапрос:

    .option("dbtable", "(select * from %s where %s>%s)tmp"% 
    (tablename,pk,lowerbound)) \
    .option("partitionColumn", pk) \
    .option("lowerbound", lowerbound) \
    .option("upperbound", upperbound) \
    .option("numPartitions", numPartitions) \
    .load()

Но это запустит несколько запросов с подзапросом для каждого раздела. Это означает, что подзапрос будет выполнен столько раз, сколько numPartions.
Возможно ли применить эти шаги искровых разделов к подзапросу или для диапазона значений в таблице mysql.

...