Преобразование разбора драйвера Spark занимает много времени, почему? - PullRequest
0 голосов
/ 26 августа 2018

У нас есть приложение spark, которое читает файл json с массивами и структурами сложных типов.

Мы написали преобразования, чтобы выровнять структуру и сохранить ее в формате hdf.

Задание выполняется за тот же промежуток времени (около 24 минут) для 10–100 ГБ данных. (Работает в динамическом распределении)

Как ни странно, мы заметили, что преобразования синтаксического анализа драйверов занимают больше времени (15 минут), чем фактическое преобразование данных. Также в течение этого времени исполнитель не используется. Мы отображали оператор печати после каждого преобразования, чтобы определить время.

Что может быть причиной потребления такого большого количества времени, чтобы просто разобрать преобразования? Я предположил, что драйвер анализирует операторы в секундах, но это не так.

Ниже приведены подробности журнала, с 3:55:02 до 04:12:08 в драйвере присутствует действие. Только действие инициируется в 04:12:08 с использованием параметра persist, а затем следует сохранение в 04: 19: 11

.
18/08/25 03:55:02 INFO Processor: Read JSON files
18/08/25 03:55:02 INFO Processor: Started splitting reservation by stay day
18/08/25 03:55:02 INFO Processor: Structuring BSeg
18/08/25 03:55:09 INFO Processor: Structuring oldSeg
18/08/25 03:55:15 INFO Processor: Structuring BN
18/08/25 03:55:20 INFO Processor: Structuring Name
18/08/25 03:55:23 INFO Processor: Structuring address
18/08/25 03:55:31 INFO Processor: Structuring Email
18/08/25 03:55:37 INFO Processor: Structuring Phone
18/08/25 03:55:48 INFO Processor: Structuring ptSeg
18/08/25 03:56:08 INFO Processor: Structuring TEST
18/08/25 03:56:51 INFO Processor: Structuring BN
18/08/25 03:58:07 INFO Processor: Adding tranaction type boolean
18/08/25 03:58:35 INFO Processor: updating status
18/08/25 03:58:47 INFO Processor: adding segment cancels
18/08/25 04:00:00 INFO Processor: los rule applied
18/08/25 04:00:13 INFO Processor: Geting date
18/08/25 04:00:30 INFO Processor: Getting Rate
18/08/25 04:00:43 INFO Processor: Exploding  BSeg/OLDSeg to multiple rows
18/08/25 04:00:55 INFO Processor: getting seg info
18/08/25 04:01:16 INFO Processor: Selecting required columns
18/08/25 04:01:24 INFO Processor: Applying UDFs
18/08/25 04:02:35 INFO Processor: calling get portal df
18/08/25 04:03:00 INFO Processor: Started Vector directory Name
18/08/25 04:03:12 INFO Processor: Step 3: Completed. GNR record exploded to 1 record/day
18/08/25 04:03:12 INFO Processor: join to Dimensions started
18/08/25 04:04:39 INFO Processor: Join to Dimension Completed 
18/08/25 04:06:28 INFO Processor: Join to Dimension Completed 
18/08/25 04:08:33 INFO Processor: Step 4: Completed. Joined to dimensions
18/08/25 04:12:08 INFO Processor: Checking for empty dataframe  -- persist method called
18/08/25 04:19:11 INFO Processor: Persist Data is true. Target Hive Table 
18/08/25 04:20:40 INFO Processor: Step 5: Completed. Saved to hive table

Пожалуйста, дайте мне знать, если потребуется более подробная информация.

1 Ответ

0 голосов
/ 27 августа 2018

Как вы можете писать преобразования и работать только на драйвере?Это бессмысленно.

Преобразования и действия вашей искры будут выполняться на рабочих.

В любом случае, вы должны предоставить код.Без кода мы ничего не можем сказать

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