[英]PySpark Data Frames when to use .select() Vs. .withColumn()?
我是 PySpark 的新手,我看到有兩種方法可以在 PySpark 中選擇列,使用“.select()”或“.withColumn()”。
據我所知,“.withColumn()”的性能較差,但除此之外,我很困惑為什么有兩種方法可以做同樣的事情。
那么我什么時候應該使用“.select()”而不是“.withColumn()”呢?
我用谷歌搜索了這個問題,但沒有找到明確的解釋。
@Robert Kossendey 您可以使用 select 鏈接多個 withColumn() 語句,而不會受到使用 withColumn 的性能影響。 同樣,在某些情況下,您可能希望/需要參數化創建的列。 您可以為窗口、條件、值等設置變量來創建您的選擇語句。
.withColumn()
不是用於選擇列,而是返回一個新的 DataFrame 和一個新的/替換的列( docs )。
使用:
df.withColumn('new', func('old'))
其中func
是您的火花處理代碼,相當於:
df.select('*', func('old').alias('new')) # '*' selects all existing columns
如您所見, withColumn()
使用起來非常方便(可能是它可用的原因),但是正如您所指出的,這會影響性能。 有關詳細信息,請參閱此帖子: Spark DAG 與 'withColumn' 與 'select' 不同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.