哪种编码更好以获得Spark的最佳性能

时间:2019-07-16 07:55:17

标签: python pyspark

如果我需要对数据帧进行转换(例如添加列),这是获得最佳性能的更好方法?。

1。

a=[1,2,3]
df=spark.createDataframe(a)
df=df.withColumn("b",lit(1))

2。

a=[1,2,3]
df=spark.createDataframe(a)
df2=df.withColumn("b",lit(1))

考虑我要添加200列。

2 个答案:

答案 0 :(得分:0)

当您使用withcolumn在spark df中添加新列时,将为每个withcolumn语句向执行计划中添加一个新的窄任务。您可以尝试在此blog中指定的方法。这可以正确说明情况。

答案 1 :(得分:0)

withColumn

将被懒惰地求值,因此您需要了解如何在不调用操作语句的情况下将新列添加到同一数据框中。

考虑到您不再需要df,就您的问题而言,如果每次要使用最新的(更新的)数据框,都可以使用相同的数据框。

希望很清楚