Pyspark count() 在使用减法命令之前和之后需要很长时间

Posted

技术标签:

【中文标题】Pyspark count() 在使用减法命令之前和之后需要很长时间【英文标题】:Pyspark count() is taking long time before and after using subtract command 【发布时间】:2021-12-16 06:00:11 【问题描述】:

这是我的代码:

spark_df1 = spark.read.option('header','True').csv("/mnt/gmclmprod/dsshare/cp106_rf_dev_final_apr20.csv.gz")

spark_df1.count( ) # This command took around 1.40 min for exectuion

spark_df1 = spark.read.option('header','True').csv("/mnt/gmclmprod/dsshare/cp106_rf_dev_final_apr20.csv.gz")

test_data = spark_df1.sample(fraction=0.001)

spark_df2 =  spark_df1.subtract(test_data)

spark_df2.count()  #This command is taking more than 20 min for execution. Can any one help why
                   #its taking long time for same count command?

为什么count()在使用subtract命令前后需要很长时间?

【问题讨论】:

鉴于这是一个与性能相关的问题,请关注this guide 以更好地构建问题。 【参考方案1】:

要点是,subtract 是一项昂贵的操作,涉及连接和不同的发生改组,因此与依靠 spark_df1.count() 相比需要很长时间。多长时间取决于 Spark 执行器配置和分区方案。请根据评论更新问题以进行深入分析。

【讨论】:

以上是关于Pyspark count() 在使用减法命令之前和之后需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark - df.cache().count() 永远运行

Pyspark - 使用 count() 分组数据并可以排序?

pySpark.sql 如何使用 WHERE 关键字?

Pyspark 错误:“Py4JJavaError:调用 o655.count 时出错。”在数据帧上调用 count() 方法时

PySpark 2.1.1 groupby + approx_count_distinct 计数为 0

在 pyspark 中的简单 .first()、.count() 中出现错误,