Показать байты, прочитанные в программе Spark + Parquet - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь оптимизировать как некоторые запросы Spark, так и схему Parquet, используя такие преимущества, как разделы и pushdown. Насколько я понимаю, эти методы позволяют пропускать большие части файлов Parquet.

Есть ли способ отобразить количество байтов, прочитанных Spark, по сравнению с общим размером файлов Parquet? И дополнительно количество операций чтения? (Я использую S3, поэтому я хотел бы минимизировать количество операций чтения из-за накладных расходов вызовов API S3.)

1 Ответ

0 голосов
/ 14 марта 2019

Если вы используете apache spark (а не частный вариант EMR), коннектор S3A собирает много статистики , включая такие вещи, как: байты, отбрасываемые при закрытии соединений, # запросов HEAD, операции удушения,и т. д.

Но: на самом деле он не собирается в spark, и потому что один экземпляр класса файловой системы для каждого сегмента s3 (следовательно, статистика) используется для каждого работника, даже если вы решите, как собирать их, они склонныпереоценить количество усилий.Там есть возможности улучшить вещи, но это займет много работы.Все, что вы в настоящее время получаете, - это прочитанные байты для каждого потока, статистика записанных байтов, которая может фактически занизить количество записанных байтов, если HTTP-запросы на загрузку данных выполняются в фоновом потоке.

Вы можете включить org.apache.hadoop.fs.s3a.S3AStorageStatistics вести журнал при отладке, а затем журналы каждого работника искры будут фактически отслеживать эти операции, как они происходят, но это очень шумно.В первую очередь полезно при попытке отладки или низкоуровневой оптимизации производительности, например, самого ридера Parquet.

Боюсь, понятия не имею об ЭМИ, а не о моем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...