Настройки размера полосы ORC в Pyspark или Scale - PullRequest
0 голосов
/ 16 октября 2018

У меня проблемы с настройкой размера полосы, индекса шага и индекса для файла orc с помощью PySpark.Я получаю около 2000 полос для файла объемом 1,2 ГБ, когда ожидаю только 5 полос для настройки 256 МБ.

Попробовал следующие параметры

  1. Установите опции.средство записи фрейма данных.Настройка сжатия в .option сработала, но другие настройки .option не сработали.Исследуйте метод .option в классе Dataframe, и он предназначен только для сжатия, а не для полосы, индекса и шага.

    df.\
     .repartition(custom field)\
     .sortWithPartitions(custom field, sort field 1 , sort field 2)\
     .write.format(orc)\
     .option("compression","zlib")\                 only this option worked
     .option("preserveSortOrder","true")\
     .options("orc.stripe.size","268435456")\
     .option("orc.row.index.stride","true")\
     .options("orc.create.index","true")\
     .save(s3 location )
    
  2. Создана пустая таблица HIVE с указанным выше значением ORC изагружается в таблицу с помощью метода Spark SaveAsTable и insertInto.В результирующей таблице было больше полос, чем ожидалось

    df.\
     .repartition(custom field)\
     .sortWithPartitions(custom field, sort field 1 , sort field 2)\
     .write.format(orc)\
     .mode("apped")
     .saveAsTable(hive tablename )    & tried .insertInto (hive table name)
    

Для обоих вариантов я включил следующие конфиги

spark.sql("set spark.sql.orc.impl=native")
spark.sql("set spark.sql.orc.enabled=true")
spark.sql("set spark.sql.orc.cache.stripe.details.size=" 268435456  ")  

Пожалуйста, дайте мне знать, если есть какие-либоотсутствует часть кода или методы уровня записи фрейма данных или конфигурация уровня сеанса Spark, которая позволила бы нам получить желаемые результаты.

...