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

Apache spark Spark驱动程序解析转换需要很长时间,为什么?,apache-spark,Apache Spark,我们有一个spark应用程序,它可以读取具有复杂类型数组和结构的json文件 我们已经编写了一个转换,以使结构平坦化并保存在hdfs中 对于10GB到100gb的数据,作业在相同的时间(大约24分钟)内完成。(在动态分配中运行) 然而,我们观察到的奇怪的事情是,驱动程序解析转换比数据的实际转换花费更多的时间(15分钟)。在此期间,也不使用执行器。我们在每次转换后显示print语句以确定时间 花这么多时间来解析转换的原因是什么?我假设驱动程序以秒为单位解析语句,但事实并非如此 下面是日志详细信息,

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

我们已经编写了一个转换,以使结构平坦化并保存在hdfs中

对于10GB到100gb的数据,作业在相同的时间(大约24分钟)内完成。(在动态分配中运行)

然而,我们观察到的奇怪的事情是,驱动程序解析转换比数据的实际转换花费更多的时间(15分钟)。在此期间,也不使用执行器。我们在每次转换后显示print语句以确定时间

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

下面是日志详细信息,从3:55:02到04:12:08,驱动程序中存在操作。唯一的操作是使用persist在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

如果需要更多详细信息,请告诉我。

如何编写转换并仅在驱动程序上运行?这是毫无意义的

spark的转换和操作将在workers上运行


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

您如何编写
转换
&仅在驱动程序上运行?这是毫无意义的