pyspark—如何减少对具有大量列的sparkDataframe执行df.descripe()方法的时间

8aqjt8rx  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(180)

对于我的一个数据验证脚本,我正在输入Dataframe上执行df.descripe(),以准备数据概要文件(其中df是我的输入Dataframe)。对于3000列(但只有16条记录)的特定Dataframe,此特定部分平均需要3分钟。当我检查spark历史时,这个部分分两个阶段执行,每个阶段有一个任务。在事件时间轴上,99.99%的时间是“执行者计算时间”。无序写入和无序读取仅以kb为单位,甚至不需要一毫秒就可以完成。在检查此阶段的dag执行流时,它给出了如下流程:

stage 1: (~1.4 min)
    scan csv --> project --> sortAggregate --> exchange(shufflle write)
stage 2(~1.6 min):
    Exchange(shufflle read)--> sortAggregate

因此,我可以理解3000列上的sortaggregate导致了延迟。我该怎么做才能缩短执行时间。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题