簡體   English   中英

PySpark 數據幀何時使用 .select() 與。 .withColumn()?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM