Janaki Lahorani created HIVE-18393: -------------------------------------- Summary: Error returned when some other type is read as string from parquet tables Key: HIVE-18393 URL: https://issues.apache.org/jira/browse/HIVE-18393 Project: Hive Issue Type: Bug Reporter: Janaki Lahorani Assignee: Janaki Lahorani
TimeStamp, Decimal, Double, Float, BigInt, Int, SmallInt, Tinyint and Boolean when read as String, Varchar or Char should return the correct data. Now this results in error for parquet tables. Test Case: drop table if exists testAltCol; create table testAltCol (cId TINYINT, cTimeStamp TIMESTAMP, cDecimal DECIMAL(38,18), cDouble DOUBLE, cFloat FLOAT, cBigInt BIGINT, cInt INT, cSmallInt SMALLINT, cTinyint TINYINT, cBoolean BOOLEAN); insert into testAltCol values (1, '2017-11-07 09:02:49.999999999', 12345678901234567890.123456789012345678, 1.79e308, 3.4e38, 1234567890123456789, 1234567890, 12345, 123, TRUE); insert into testAltCol values (2, '1400-01-01 01:01:01.000000001', 1.1, 2.2, 3.3, 1, 2, 3, 4, FALSE); insert into testAltCol values (3, '1400-01-01 01:01:01.000000001', 10.1, 20.2, 30.3, 1234567890123456789, 1234567890, 12345, 123, TRUE); select cId, cTimeStamp from testAltCol order by cId; select cId, cDecimal, cDouble, cFloat from testAltCol order by cId; select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltCol order by cId; select cId, cBoolean from testAltCol order by cId; drop table if exists testAltColP; create table testAltColP stored as parquet as select * from testAltCol; select cId, cTimeStamp from testAltColP order by cId; select cId, cDecimal, cDouble, cFloat from testAltColP order by cId; select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId; select cId, cBoolean from testAltColP order by cId; alter table testAltColP replace columns (cId TINYINT, cTimeStamp STRING, cDecimal STRING, cDouble STRING, cFloat STRING, cBigInt STRING, cInt STRING, cSmallInt STRING, cTinyint STRING, cBoolean STRING); select cId, cTimeStamp from testAltColP order by cId; select cId, cDecimal, cDouble, cFloat from testAltColP order by cId; select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId; select cId, cBoolean from testAltColP order by cId; alter table testAltColP replace columns (cId TINYINT, cTimeStamp VARCHAR(100), cDecimal VARCHAR(100), cDouble VARCHAR(100), cFloat VARCHAR(100), cBigInt VARCHAR(100), cInt VARCHAR(100), cSmallInt VARCHAR(100), cTinyint VARCHAR(100), cBoolean VARCHAR(100)); select cId, cTimeStamp from testAltColP order by cId; select cId, cDecimal, cDouble, cFloat from testAltColP order by cId; select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId; select cId, cBoolean from testAltColP order by cId; alter table testAltColP replace columns (cId TINYINT, cTimeStamp CHAR(100), cDecimal CHAR(100), cDouble CHAR(100), cFloat CHAR(100), cBigInt CHAR(100), cInt CHAR(100), cSmallInt CHAR(100), cTinyint CHAR(100), cBoolean CHAR(100)); select cId, cTimeStamp from testAltColP order by cId; select cId, cDecimal, cDouble, cFloat from testAltColP order by cId; select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId; select cId, cBoolean from testAltColP order by cId; drop table if exists testAltColP; Error: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask Excerpt for log: 2018-01-05T15:54:05,756 ERROR [LocalJobRunner Map Task Executor #0] mr.ExecMapper: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row [Error getting row data with exception java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.hive.serde2.io.TimestampWritable at org.apache.hadoop.hive.ql.io.parquet.serde.primitive.ParquetStringInspector.getPrimitiveJavaObject(ParquetStringInspector.java:77) -- This message was sent by Atlassian JIRA (v6.4.14#64029)