0
해야합니다 :하이브 뭐 이따위 압축 길이는 자체가 다음과 같은 예외가 결과 테이블에 조인을 사용 아래 표를 쿼리 덜
select a.*
from events a
inner join
(
SELECT asset_id, time, max(hive_insert_ts)
FROM events
GROUP BY asset_id, time
) b on a.time = b.time
and a.asset_id = b.asset_id
limit 10;
표 :
java.lang.IllegalArgumentException: Uncompressed length 222258 must be less than 131072
at org.iq80.snappy.SnappyInternalUtils.checkArgument(SnappyInternalUtils.java:116)
at org.iq80.snappy.SnappyDecompressor.uncompress(SnappyDecompressor.java:72)
at org.iq80.snappy.Snappy.uncompress(Snappy.java:43)
at org.apache.hadoop.hive.ql.io.orc.SnappyCodec.decompress(SnappyCodec.java:71)
at org.apache.hadoop.hive.ql.io.orc.InStream$CompressedStream.readHeader(InStream.java:214)
at org.apache.hadoop.hive.ql.io.orc.InStream$CompressedStream.available(InStream.java:251)
문제가있는 쿼리는 다음과 같다 ORC로 저장되고 SNAPPY를 사용하여 압축 됨 :
create table events(
asset_id varchar(15),
time timestamp,
hive_insert_ts timestamp)
PARTITIONED BY (
country varchar(4),
site varchar(4),
year int,
month int)
STORED as ORC
TBLPROPERTIES (
'orc.compress'='SNAPPY',
'orc.create.index'='true',
'orc.bloom.filter.columns'='asset_id, time',
'orc.bloom.filter.fpp'='0.05',
'orc.stripe.size'='268435456',
'orc.row.index.stride'='10000');
많이 찾았지만 찾을 수 없습니다. 어떤 힌트. 문제가 어디에있을 수 있는지 알고 있습니까?
고맙습니다.
공유해 주셔서 감사합니다. –