Ошибка выполнения Hive: невозможно десериализовать ключ ввода сокращения

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

запрос

'set hive.exec.dynamic.partition=true;
 set hive.exec.dynamic.partition.mode=nonstrict;
 set hive.execution.engine=tez;
 INSERT OVERWRITE TABLE table1 PARTITION (date) select col1,CONCAT(COALESCE(substr(Cdate,1,4),'-'),'',COALESCE(substr(Cdate,6,2),'-'),'',COALESCE(substr(Cdate,9,2),'-')),col3,col4,'mobile-data',data,date 
from
(select col1,substr(CDate,1,10) as Cdate,u.col3 as col3,u.col4 as col4,date,sum(u.col5+u.col6) as data from json_table lateral view explode(json_table.mobiledata) oc as u 
where date >= from_unixtime(unix_timestamp()-4*60*60*24, 'yyyyMMdd')
group by col1,substr(CDate,1,10),u.col3,u.col4,date)t;'

ошибка:

'Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error: Unable to deserialize reduce input key from x1x50x48x49x53x48x56x49x57x0x1x117x115x101x114x49x0x1x129x51x122x35x1x65x78x84x32x72x65x76x32x83x101x114x118x105x99x101x0x1x99x111x109x46x100x115x105x46x97x110x116x46x115x101x114x118x101x114x0x1x109x111x98x105x108x101x45x100x97x116x97x0x255 with properties{columns=reducesinkkey0,reducesinkkey1,reducesinkkey2,reducesinkkey3,reducesinkkey4,reducesinkkey5, serialization.lib=org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe, serialization.sort.order=++++++, columns.types=string,string,string,string,string,string}'

Я никогда не видел эту ошибку. Кто-нибудь знает, как об этом позаботиться?

Этот запрос работает нормально, если я просто использую выбранную часть запроса, исключая вставку в секционированную таблицу.


person dheee    schedule 26.08.2015    source источник
comment
внутренний запрос (t) работает нормально, когда вы запускаете его отдельно   -  person Kishore    schedule 27.08.2015
comment
@krish да, только внутренний запрос работает нормально, а также приведенный выше полный запрос работает, когда у меня нет таблицы INSERT INTO Partitioned.   -  person dheee    schedule 27.08.2015
comment
См.: stackoverflow.com/a/50781156/2142994   -  person Ani Menon    schedule 10.06.2018


Ответы (1)


Я смог решить эту проблему, используя помощь по этой ссылке

http://documentation.altiscale.com/hive-runtime-error-unable-to-deserialize-input-key

Все, что мне было нужно, это изменить настройки.

'Set hive.optimize.sort.dynamic.partition = false;'

Как только я добавлю этот параметр, запрос (вставка в секционированную таблицу) работает нормально.

person dheee    schedule 27.08.2015