You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by GitBox <gi...@apache.org> on 2022/01/19 05:43:53 UTC

[GitHub] [iceberg] jqysn commented on issue #3913: Not able to query partitioned iceberg table in Hive (EMR: emr-5.29.0)

jqysn commented on issue #3913:
URL: https://github.com/apache/iceberg/issues/3913#issuecomment-1016104942


   @pvary Thanks for your help. It works with above settings.
   However on tez side, the latest release version is 0.10.0, which should have come compatible issue on guava if using hive 2.3.6. And I tried to find out what happened when running on tez with partition col:
   
   `Caused by: java.lang.RuntimeException: **Record: Record(d1)**, StructField: org.apache.iceberg.mr.hive.serde.objectinspector.IcebergRecordObjectInspector$IcebergRecordStructField@27fa5cb1
   	at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergRecordObjectInspector.getStructFieldData(IcebergRecordObjectInspector.java:75)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeColumnEvaluator._evaluate(ExprNodeColumnEvaluator.java:95)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator.evaluate(ExprNodeEvaluator.java:80)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator$DeferredExprObject.get(ExprNodeGenericFuncEvaluator.java:88)
   	at org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual.evaluate(GenericUDFOPEqual.java:103)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator._evaluate(ExprNodeGenericFuncEvaluator.java:187)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator.evaluate(ExprNodeEvaluator.java:80)
   	at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator.evaluate(ExprNodeEvaluator.java:68)
   	at org.apache.hadoop.hive.ql.exec.FilterOperator.process(FilterOperator.java:112)
   	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:897)
   	at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:130)
   	at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:148)
   	at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
   	... 18 more`
   
   I throw a runtime exception to view the content of GenericRecord, and it looks like there is a miss match between the record and schema: the struct filed position(evaluated as 2) doesn't match with the Record schema (position should be 0). That's probably the reason why it throws ArrayIndexOutOfBoundsException. 
   
   To make iceberg support tez-0.9.2 (most recent version in use), we need to use _getFieldName_ from record schema, rather than using the _position()_ of the structfield.
   ![image](https://user-images.githubusercontent.com/87296427/150071036-14020480-6e47-4567-963a-37a919e6014b.png)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org