2016-08-01 7 views
2

ich einen Bienenstock-Tabelle mit folgenden Eigenschaften haben -Classcast während ORC-Dateiformat mit Hive zu verwenden, wenn vectorized.execution.enabled

  • ORC-Speicherformat
  • Transaktions = true
  • partitionierten auf 4 Tasten - Jahr , Monat, Tag, Stunde
  • von groupingKey bucketed

Ich verwende Hive Streaming, um Daten direkt in Tabellen zu füllen.

Nun mein Problem ist - ich folgende Abfrage

select count(*) from table_name; 

Ich erhalte folgende Ausnahme

Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.ql.io.orc.OrcStruct$OrcStructInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector 
at org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil.setVector(VectorizedBatchUtil.java:295) 
at org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil.acidAddRowToBatch(VectorizedBatchUtil.java:275) 
at org.apache.hadoop.hive.ql.io.orc.VectorizedOrcAcidRowReader.next(VectorizedOrcAcidRowReader.java:82) 

jedoch zu laufen versuchen, wenn ich durch das Setzen folgende Eigenschaft vektorisiert Ausführung deaktivieren

set hive.vectorized.execution.enabled = false; 

alles funktioniert gut (obwohl es Ewigkeiten zu vervollständigen).

Warum passiert das? Soweit ich das verstehe, sollte die vektorisierte Ausführung mit ORC-Format funktionieren.

Hadoop Version - 2.7.1

Hive Version - 1.2.1

+0

Rishabh, Meine Antwort nützlich war? –

+0

@RamPrasadG Ich benutze Hive 1.2.1 und versuche zu sehen, ob ich auf 1.3.0 upgraden kann. Daher nicht in der Lage, dies zu überprüfen. Es scheint jedoch dasselbe Problem zu sein. Danke vielmals. Bestätigen und akzeptieren Sie die Antwort – Rishabh

+0

Wenn Sie mit der Antwort einverstanden sind, stimmen Sie bitte als Besitzer ab – user3190018

Antwort