Я пишу файлы Parquet, используя две разные платформы — Apache Spark (Scala) и Polars (Python) — с одной и той же схемой и данными. Однако, когда я запрашиваю полученные файлы Parquet с помощью Apache DataFusion, я замечаю значительную разницу в производительности:
Запросы выполняются быстрее в файле Parquet, написанном Polars.
Запросы выполняются дольше в файле Parquet, написанном Spark.
Я ожидал аналогичной производительности, поскольку схема и данные остаются неизменными. Я пытаюсь понять, почему возникает это несоответствие.
Вот некоторые подробности о моей настройке:
Версия Spark: 3.5.0
Версия Polars: 1.24.0
Параметры записи в паркет:
Spark: df.write.parquet("path")
Polars: df.write_parquet("path")
Я тоже пробовал менять компрессию для искры, но не смог добиться тех же результатов, что и паркет от Polars.
Кто-нибудь сталкивался с подобной проблемой? Какие аспекты написания паркета Spark и Polars могут вызвать такую разницу в производительности? Существуют ли конкретные конфигурации, которые мне следует проверить при написании Parquet в любой из инфраструктур?
Это некоторые конфигурации, которые я попробовал настроить для Spark перед написанием.
.config("spark.sql.parquet.compression.codec", "zstd")
.config("parquet.enable.dictionary", "true")
.config("parquet.dictionary.pageSize", 1048576)
.config("parquet.block.size", 4 * 1024 * 1024) // Smaller row groups (4MB) for DataFusion
.config("parquet.page.size", 128 * 1024)
.config("parquet.writer.version", "PARQUET_2_0")
.config("parquet.int96RebaseModeInWrite", "CORRECTED")
.config("spark.sql.parquet.mergeSchema", "false")
.config("parquet.column.index.enabled", "true")
.config("parquet.column.index.pageSize", "64 * 1024")
.config("parquet.statistics.enabled", "true")
.config("parquet.int64.timestats", "false")
.config("spark.sql.parquet.outputTimestampType", "TIMESTAMP_MICROS")
.config("spark.sql.parquet.filterPushdown", "true")
Подробнее здесь: https://stackoverflow.com/questions/795 ... ten-with-s
Почему файл Parquet, написанный с помощью Polars, выполняет запросы быстрее, чем файл, написанный с помощью Spark? ⇐ Python
Программы на Python
1767021901
Anonymous
Я пишу файлы Parquet, используя две разные платформы — Apache Spark (Scala) и Polars (Python) — с одной и той же схемой и данными. Однако, когда я запрашиваю полученные файлы Parquet с помощью Apache DataFusion, я замечаю значительную разницу в производительности:
Запросы выполняются быстрее в файле Parquet, написанном Polars.
Запросы выполняются дольше в файле Parquet, написанном Spark.
Я ожидал аналогичной производительности, поскольку схема и данные остаются неизменными. Я пытаюсь понять, почему возникает это несоответствие.
Вот некоторые подробности о моей настройке:
Версия Spark: 3.5.0
Версия Polars: 1.24.0
Параметры записи в паркет:
Spark: df.write.parquet("path")
Polars: df.write_parquet("path")
Я тоже пробовал менять компрессию для искры, но не смог добиться тех же результатов, что и паркет от Polars.
Кто-нибудь сталкивался с подобной проблемой? Какие аспекты написания паркета Spark и Polars могут вызвать такую разницу в производительности? Существуют ли конкретные конфигурации, которые мне следует проверить при написании Parquet в любой из инфраструктур?
Это некоторые конфигурации, которые я попробовал настроить для Spark перед написанием.
.config("spark.sql.parquet.compression.codec", "zstd")
.config("parquet.enable.dictionary", "true")
.config("parquet.dictionary.pageSize", 1048576)
.config("parquet.block.size", 4 * 1024 * 1024) // Smaller row groups (4MB) for DataFusion
.config("parquet.page.size", 128 * 1024)
.config("parquet.writer.version", "PARQUET_2_0")
.config("parquet.int96RebaseModeInWrite", "CORRECTED")
.config("spark.sql.parquet.mergeSchema", "false")
.config("parquet.column.index.enabled", "true")
.config("parquet.column.index.pageSize", "64 * 1024")
.config("parquet.statistics.enabled", "true")
.config("parquet.int64.timestats", "false")
.config("spark.sql.parquet.outputTimestampType", "TIMESTAMP_MICROS")
.config("spark.sql.parquet.filterPushdown", "true")
Подробнее здесь: [url]https://stackoverflow.com/questions/79510306/why-does-a-parquet-file-written-with-polars-query-faster-than-one-written-with-s[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия