2016-03-29 13 views
1

Я читаю Parquet журналы в PIG. Лог-схема содержит поле FULL, вложенное под полем USER. Поскольку FULL - это ключевое слово в Pig, я не могу загрузить файл. Свинья дает ошибки времени компиляции. Невозможно избежать такого имени поля. Было бы очень полезно изменить имя столбца в схеме. Это то, что я использую, чтобы загрузитьApache Pig escape column name

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader(); 
user_normalized = FOREACH user_parquet GENERATE ..... USER.FULL as user_full ... 

Я попытался убежать с \, ``, '', но ни один из них не работал!

ответ

1

В принципе я решил проблему, ссылающегося поля с номером поля вместо имени поля: -

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader(); 
user_normalized = FOREACH user_parquet GENERATE ..... USER.$0 as user_full ... 

Свиньи, как и любой другой язык, как не способ избежать ключевое слово, если использовать в качестве имени переменной.

+0

переменная или ключевое слово? Https: //pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Keywords –

+0

Я имел в виду имя переменной, которое является ключевым словом. «полный» в моем случае –