Проблема при чтении таблицы улья, в которой есть столбец с фильтром Блума.
Таблица в формате ORC .
CREATE EXTERNAL TABLE test (
id bigint,
name string)
PARTITIONED BY (
month_end_year int,
month_end_month int,
month_end_date date)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
's3://<some location>/test'
TBLPROPERTIES (
'orc.bloom.filter.columns'='id')
следующий код pyspark
spark = SparkSession.builder.appName('test').enableHiveSupport().getOrCreate()
df = spark.sql('select * from default.test')
df.show()
Получение следующего исключения
Вызвано: java.lang.RuntimeException:
java.lang.IllegalArgumentException в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl $ BufferChunk.sliceAndShift (RecordReaderImpl.java:871)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderUtils.getStreamBuffers (RecordReaderUtils.java:332)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.createStreams (RecordReaderImpl.java:947)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.readPartialDataStreams (RecordReaderImpl.java:969)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.readStripe (RecordReaderImpl.java:793)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.advanceStripe (RecordReaderImpl.java:986)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.advanceToNextRow (RecordReaderImpl.java:1019)
в
org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl. (RecordReaderImpl.java:205)
в
org.apache.hadoop.hive.ql.io.orc.ReaderImpl.rowsOptions (ReaderImpl.java:541)
в
org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger $ ReaderPair. (OrcRawRecordMerger.java:183)
в
org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger $ OriginalReaderPair. (OrcRawRecordMerger.java:226)
в
org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger. (OrcRawRecordMerger.java:437)
в
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getReader (OrcInputFormat.java:1216)
в
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getRecordReader (OrcInputFormat.java:1113)
в
org.apache.spark.rdd.HadoopRDD $$ Анон $ 1.liftedTree1 $ 1 (HadoopRDD.scala: 257)
в org.apache.spark.rdd.HadoopRDD $$ anon $ 1. (HadoopRDD.scala: 256)
в org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 214) в
org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 94) в
org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в
org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 49)
в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324)
в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 49)
в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324)
в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.UnionRDD.compute (UnionRDD.scala: 105) в
org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в
org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 49)
в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324)
в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 49)
в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324)
в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 49)
в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324)
в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в
org.apache.spark.scheduler.ShuffleMapTask.runTask (ShuffleMapTask.scala: 96)
в
org.apache.spark.scheduler.ShuffleMapTask.runTask (ShuffleMapTask.scala: 53)
в org.apache.spark.scheduler.Task.run (Task.scala: 109) в
org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 345)
в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
... еще 1 причина: java.lang.IllegalArgumentException at
java.nio.Buffer.limit (Buffer.java:275) вorg.apache.hadoop.hive.ql.io.orc.RecordReaderImpl $ BufferChunk.sliceAndShift (RecordReaderImpl.java:865)
... еще 44
Версия улья: Улей 2.3.3-амзн-2
Версия Spark: версия 2.3.2