Apache spark 从pyspark将预测保存到HDFS在纱线(群集或客户端)上非常慢

Apache spark 从pyspark将预测保存到HDFS在纱线(群集或客户端)上非常慢,apache-spark,pyspark,hdfs,yarn,Apache Spark,Pyspark,Hdfs,Yarn,写。。。在8小时左右速度非常慢 show()速度非常快,大约2分钟 输入数据为3GB,格式为拼花地板 输出数据小于1GB df = rf_model.transform(df).select("id", "probability", "prediction") df = df.withColumn("prediction", df["prediction"].cast(StringType())

写。。。在8小时左右速度非常慢

show()速度非常快,大约2分钟

输入数据为3GB,格式为拼花地板

输出数据小于1GB

df = rf_model.transform(df).select("id", "probability", "prediction")

df = df.withColumn("prediction", df["prediction"].cast(StringType()))
df = df.withColumn("probability", df["probability"].cast(StringType()))

df.show()

save_path = "hdfs://.../......"
df.write.parquet(path=save_path, mode="overwrite")

spark版本:2.4.3

Hi show()只需要20次录制并停止执行。你可以说它一达到20条记录就停止了勒索。@sandeeprawat,谢谢!我知道了,但是输入数据只有3GB,输出小于1GB,为什么df.write这么慢?对于写拼花地板来说,它需要ram中的所有数据来制作列格式,可能是因为应用程序没有获得足够的内存,它将进行交换输入交换输出..我的spark submit请求的内存远远超过了数据大小,内存应该足够了。spark tasks:200,数据大小远小于executor的内存。原始数据存储在SSD上。在数据写入阶段,每个任务的执行时间都很长。
spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 20 \
--driver-memory 6G \
--executor-memory 3G \