2013-11-26 3 views
2

Я пытаюсь загрузить таблицу из HCatalog, выполнить некоторые упражнения с данными и сохранить их в другой таблице.Проблемы с преобразованием типов - Pig -> HCatalog

Источник: таблица stage.iboa_event_definitions

inno_description string  
inno_id   double  
inno_name  string  
inno_url  string  
inno_valid_from string  
inno_valid_to  string 

Таблица назначения:

create table dictionary (id int,src_id double,source_code string, src_code string,  src_description string, group_code string); 

Мой сценарий:

iboa_event_definitions = LOAD 'stage.iboa_event_definitions' USING org.apache.hcatalog.pig.HCatLoader(); 
iboa_event_definitions_filter = foreach iboa_event_definitions generate inno_id as src_id, 'IBOA' as source_code, inno_name as src_code, inno_description as src_description, '' as group_code; 
iboa_event_definitions_filter_id = RANK iboa_event_definitions_filter; 
final_table = foreach iboa_event_definitions_filter_id generate rank_iboa_event_definitions_filter as id:int, src_id, source_code as source_code, src_code, 
src_description, group_code; 
store final_table into 'dictionary' using org.apache.hcatalog.pig.HCatStorer(); 

И я получаю ошибку:

2013-11-26 13:18:06,140 [main] INFO org.apache.pig.tools.pigstats.ScriptState - Pig features used in the script: RANK 2013-11-26 13:18:06,143 [main] INFO org.apache.pig.newplan.logical.rules.ColumnPruneVisitor - Columns pruned for iboa_event_definitions: $3, $4, $5 2013-11-26 13:18:06,212 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1115: Unsupported type: 10 in Pig's schema Details at logfile: /export/home/pig/pig_1385463241554.log

Почему? Давайте проверим типы полей.

describe iboa_event_definitions_filter_id; 
iboa_event_definitions_filter_id: {rank_iboa_event_definitions_filter: long,src_id: double,source_code: chararray,src_code: chararray,src_description: chararray,group_code: chararray} 

describe final_table; 
final_table: {id: int,src_id: double,source_code: chararray,src_code: chararray,src_description: chararray,group_code: chararray} 

Возможно, ошибка вызвана длинным типом? Но именно поэтому я пытаюсь преобразовать его в int.

Может ли кто-нибудь помочь мне с этой проблемой?

Благодаря

Pawel

+0

Мое предложение состоит в том, чтобы попытаться удалить большинство столбцов, чтобы найти плохой.Также вы можете попробовать проверить документы/источник, чтобы узнать, что означает «10» в «Неподдерживаемый тип: 10 в схеме свиньи». – Ruslan

+0

. В какой колонке проблема:> тот, который создается операцией RANK: rank_iboa_event_definitions_filter. –

+0

Исправление: kwot -> знать –

ответ

2

Ключевая часть вашего сообщения об ошибке:

Unsupported type: 10 in Pig's schema 

Это произошло для меня, когда я был INT и попытался сохранить его в таблице, где, где соответствующий столбец был BIGINT.

Решение для меня состояло в том, чтобы изменить таблицу (а не сценарий свиньи), после чего магазин прошел хорошо.

0

Я также столкнулся с этой проблемой при попытке сохранить значение int [после литья в int] в таблице, где соответствующий столбец был BIGINT.

HIVE

INT/Integer (4-байтовое целое число со знаком) BIGINT (8-байтовое целое число со знаком)

корреспондент на рис

INT Signed 32-разрядное целое число

long Подписанное 64-битовое целое

Так что я бросил свою ценность до долго, и он решил мою проблему.