I have a Parquet table defined as:
CREATE TABLE table_name (
latitude decimal(18,14),
longitude decimal(18,14),
)
WITH (
external_location = 'hdfs://somewhere',
format = 'PARQUET'
)
The parquet file's schema is:
message parquet_schema {
optional int64 latitude (DECIMAL(18,14));
optional int64 longitude (DECIMAL(18,14));
}
and when I try to query it, I get:
Query failed (#query_id): com.facebook.presto.spi.type.LongDecimalType
java.lang.RuntimeException: java.lang.UnsupportedOperationException: com.facebook.presto.spi.type.LongDecimalType
at com.facebook.presto.spi.type.AbstractType.writeLong(AbstractType.java:111)
at com.facebook.presto.hive.parquet.reader.ParquetLongColumnReader.readValues(ParquetLongColumnReader.java:39)
at com.facebook.presto.hive.parquet.reader.ParquetColumnReader.readPrimitive(ParquetColumnReader.java:186)
at com.facebook.presto.hive.parquet.reader.ParquetReader.readPrimitive(ParquetReader.java:176)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:271)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:247)
at com.facebook.presto.spi.block.LazyBlock.assureLoaded(LazyBlock.java:235)
Indeed it doesn't seem like LongDecimalType implements writeLong, so I'm not certain why it's even getting into that codepath.
We're on version 0.164, but Decimals (with precision of 18) should be supported in 0.164, right?
Any clarification is appreciated,
thanks!
It should be supported now, can you please try the latest Presto version (0.180)?
馃憤 thanks @nezihyigitbasi - so Decimals(>17,x) weren't supported in 0.164
Please reopen if the latest version doesn't work for you.
Hi I m using presto 0.180 . I m trying query table in hive it gives following exception.
java.lang.UnsupportedOperationException: com.facebook.presto.spi.type.VarcharType
at com.facebook.presto.spi.type.AbstractType.writeLong(AbstractType.java:111)
at com.facebook.presto.hive.parquet.reader.ParquetLongColumnReader.readValue(ParquetLongColumnReader.java:32)
at com.facebook.presto.hive.parquet.reader.ParquetColumnReader.readValues(ParquetColumnReader.java:179)
at com.facebook.presto.hive.parquet.reader.ParquetColumnReader.readPrimitive(ParquetColumnReader.java:161)
at com.facebook.presto.hive.parquet.reader.ParquetReader.readPrimitive(ParquetReader.java:265)
at com.facebook.presto.hive.parquet.reader.ParquetReader.readPrimitive(ParquetReader.java:247)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:283)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:259)
at com.facebook.presto.spi.block.LazyBlock.assureLoaded(LazyBlock.java:253)
Most helpful comment
Hi I m using presto 0.180 . I m trying query table in hive it gives following exception.
java.lang.UnsupportedOperationException: com.facebook.presto.spi.type.VarcharType
at com.facebook.presto.spi.type.AbstractType.writeLong(AbstractType.java:111)
at com.facebook.presto.hive.parquet.reader.ParquetLongColumnReader.readValue(ParquetLongColumnReader.java:32)
at com.facebook.presto.hive.parquet.reader.ParquetColumnReader.readValues(ParquetColumnReader.java:179)
at com.facebook.presto.hive.parquet.reader.ParquetColumnReader.readPrimitive(ParquetColumnReader.java:161)
at com.facebook.presto.hive.parquet.reader.ParquetReader.readPrimitive(ParquetReader.java:265)
at com.facebook.presto.hive.parquet.reader.ParquetReader.readPrimitive(ParquetReader.java:247)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:283)
at com.facebook.presto.hive.parquet.ParquetPageSource$ParquetBlockLoader.load(ParquetPageSource.java:259)
at com.facebook.presto.spi.block.LazyBlock.assureLoaded(LazyBlock.java:253)