Error while compiling statement failed

Error while compiling statement failed

Используя Cloudera Data Science Workbench, сеанс Python 2, я вызываю файл .sql :

Changing tables names for security:

DROP TABLE IF EXISTS database1.table1 ;

CREATE TABLE IF NOT EXISTS database1.table1 ;

AS Select tb.column1

FROM database2.table2 as tb lIMIT 10

Запросы выполняются нормально в HUE, но я получаю следующую ошибку при вызове их из pyhive

Pyhs2Exception:

 “Error while compiling statement: FAILED: ParseException line 1:84 missing EOF at ‘;’

Я предполагаю, что мне нужно выполнить два отдельных оператора при использовании pyhive, есть ли способ объединить операторы sql при выполнении одного курсора?

вот часть курсора из python, она отлично работает, вызывая каждый из операторов, если я запускаю их отдельно, “операторы удаления или создания”:

cursor = conn.cursor()

cursor.execute((open(“sandbox/test2_table_create.sql”).read()))

Ответ

похоже, sql плохой. Ошибка, которую вы получаете, обычно связана с тем, что анализатор не находит конец файла там, где он ожидал. В этом случае похоже, что SQL указывает, что была достигнута последняя команда, но python обнаруживает, что в файле больше команд. –

MCBama

 6 декабря 2017 года в 17:14

вот что происходит. можете ли вы включить две команды в один файл? –

Брайан Д.С.

 6 декабря 2017 года в 17:41

Конечно. Мне кажется, что у вас неуместна точка с запятой или, возможно, комментарий, который не является комментарием? “Изменение имен таблиц для обеспечения безопасности” выглядит как строка комментария, но я не вижу ничего, что делало бы это комментарием, который заставит анализатор подумать, что это команда. Вся вторая команда также выглядит странно для меня, поскольку обычно AS команды приходят после SELECT вызова, а не раньше. –

MCBama

 6 декабря 2017 года в 17:49

SQL отлично работает в HUE, потому что HUE принимает точку с запятой в качестве конца команды. Похоже, мне, возможно, придется выполнять итерации по файлу и выполнять каждую команду отдельно? –

Брайан Д.С.

 6 декабря 2017 года в 17:53

Вы не должны этого делать. Но я признаю, что у меня нет большого опыта использования sql в python. На самом деле я стараюсь избегать этого из-за таких вещей, как этот xD. Так что, надеюсь, кто-то более опытный в этой области сможет вам больше помочь. –

MCBama

 6 декабря 2017 года в 17:56

Он считает, что нет способа выполнить несколько команд SQL в одном операторе execute с использованием Impyla.

Error while compiling statement: FAILED: ParseException line 1:18 mismatched input ‘/’ expecting StringLiteral near ‘inpath’ in load statement

Я пытаюсь загрузить файл из локального в HDFS с помощью HIVE.

Я создаю таблицу “несчастные случаи”, и файл находится на моем рабочем столе: proyectobigdata/AccidentesBicicletas_2018.csv’

Я использовал эту команду, загружающую данные по пути ‘/users/melissavallejos/desktop/proyectobigdata/AccidentesBicicletas_2018.csv’ в таблицу несчастных случаев, но она получила эту ошибку: Ошибка при компиляции инструкции: СБОЙ: ParseException строка 1: 18 несоответствующий ввод ‘/’ ожидание строковой буквы рядом с ‘inpath’ в инструкции load

Я действительно новичок в этой платформе, и я работаю с MAC.

Я ценю любой совет.

Ответ

Посмотрите на символ кавычки в начале и конце этой строки.

‘/users/melissavallejos/desktop/proyectobigdata/AccidentesBicicletas_2018.csv’

Они не совпадают. Замените последний символ одинарной кавычкой (‘), и команда должна быть проанализирована просто отлично.

Наталья Петрова
Оцените автора
Новости города Салавата
Добавить комментарий

Adblock
detector