Ошибка фильтра Hive Bloom при доступе к таблице с помощью pyspark - PullRequest
0 голосов
/ 03 мая 2019

Проблема при чтении таблицы улья, в которой есть столбец с фильтром Блума.

Таблица в формате 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

...