У нас есть приложение 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
Пожалуйста, дайте мне знать, если потребуется более подробная информация.