У меня проблемы с настройкой размера полосы, индекса шага и индекса для файла orc с помощью PySpark.Я получаю около 2000 полос для файла объемом 1,2 ГБ, когда ожидаю только 5 полос для настройки 256 МБ.
Попробовал следующие параметры
Установите опции.средство записи фрейма данных.Настройка сжатия в .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 )
Создана пустая таблица 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, которая позволила бы нам получить желаемые результаты.