2016-12-06 1 views
0

Я довольно новый с искрами. У меня есть задача получить 3M-запись с сервера sql через платформу данных denodo и записать в s3. На стороне сервера sql это представление о соединении двух таблиц. Взгляд занимает много времени.Зачем искры sql добавляет, где 1 = 0 во время загрузки?

Теперь я пытаюсь выполнить команду искры, как:

val resultDf = sqlContext.read.format("jdbc").option("driver","com.denodo.vdp.jdbc.Driver").option("url", url).option("dbtable", "myview").option("user", user).option("password", password) 

Я могу видеть, что искры посылает запрос типа:

SELECT * FROM myview WHERE 1=0 

И эта часть занимает больше часа.

Может кто-нибудь скажет мне, почему предложение where здесь добавляется?

Спасибо.

ответ

0

Если я правильно понимаю вашу проблему, Spark отправляет SELECT * FROM myview WHERE 1=0 на сервер Denodo.

Если это так, этот запрос должен быть обнаружен Denodo как запрос без результатов из-за несовместимых условий в предложении WHERE, и выполнение должно быть мгновенным. Вы можете попробовать выполнить тот же запрос в VQL Shell Denodo (доступный в версии 6), администратор администрирования Denodo или любой другой клиент ODBC/JDBC для проверки того, что запрос даже не отправлен в источник данных. Может быть, Spark выполняет этот запрос, чтобы сначала получить схему вывода?

Какую версию Denodo вы используете?