Spark驱动程序解析转换需要很长时间,为什么?

时间:2018-08-26 00:09:32

标签: apache-spark

我们有spark应用程序,可以读取具有复杂类型数组和结构的json文件。

我们编写了一个转换,以将结构弄平并保存在hdfs中。

作业在相同的时间量(约24分钟)内完成10 gb至100gb的数据。 (以动态分配方式运行)

无论如何,我们发现驱动程序解析转换比实际转换数据花费更多的时间(15分钟)。同样在此期间,不使用执行程序。每次转换后,我们都会显示打印语句,以确定时间。

为什么要花这么多时间来解析转换是什么原因?我假设驱动程序以秒为单位解析语句,但事实并非如此。

下面是日志详细信息,从3:55:02到04:12:08,驱动程序中存在操作。使用持久化操作仅在04:12:08触发操作,然后在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 :(得分:0)

如何编写转换并仅在驱动程序上运行?这是胡说八道。

您的火花的转变和行动将在工人身上进行。

无论如何,您应该提供代码。没有代码,我们什么也不能说