Ожидание QUOTED STRING в скрипте свиньи

Я написал сценарий для выбора из vsql:

LOAD 'sql://{select * from sandesh.insights_voice_day
 WHERE Observation_date BETWEEN '2011-11-22' AND '2011-11-23' AND
 Type='total'
 ORDER BY Observation_date}'

Он показывает исключение как '' Expecting QUOTEDSTRING? , Что проблема?

2 ответа

Pig ожидает строку с кавычками после загрузки с именем загружаемого файла. Свинья не является SQL, поэтому вам нужно сделать что-то вроде первого дампа вашего запроса в файл, а затем:

A = LOAD "your_file" as (column1:datatype, column2:datatype);
B = FITER A by observation date > '2011-11-22' AND observation_date < '2011-11-23' AND
 Type='total';
C = ORDER B by observation_date;
DUMP C;

Теперь это будет упорядочивать их как строки. Поэтому, в зависимости от версии Pig, которую вы используете, вам нужно иметь дело со временными метками с соответствующей функцией. Что-то вроде:

http://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/evaluation/datetime/convert/CustomFormatToISO.html


Кажется, что проблема заключается в использовании одинарных кавычек несколько раз. Кажется, что в одной строке компилируется (свинец -c test.pig)

A = LOAD 'sql://{select * from sandesh.insights_voice_day WHERE Observation_date BETWEEN "2011-11-22" AND "2011-11-23" AND Type="total" ORDER BY Observation_date}';

licensed under cc by-sa 3.0 with attribution.