PySpark SQL 函數的 col(~)
方法返回 Column
對象。
參數
1. col
| string
要返回的列的標簽。
返回值
Column
對象。
例子
考慮以下PySpark DataFrame:
df = spark.createDataFrame([["Alex", 20], ["Bob", 30]], ["name", "age"])
df.show()
+----+---+
|name|age|
+----+---+
|Alex| 20|
| Bob| 30|
+----+---+
選擇 PySpark 中的一列
要選擇 name
列:
import pyspark.sql.functions as F
df.select(F.col("name")).show()
+----+
|name|
+----+
|Alex|
| Bob|
+----+
請注意,我們也可以選擇 name
列,而無需顯式使用 F.col(~)
,如下所示:
df.select("name").show()
+----+
|name|
+----+
|Alex|
| Bob|
+----+
創建新列
要創建一個名為 status
的新列,其值取決於 age
列:
new_col = F.when(F.col("age") < 25, "junior").otherwise("senior").alias("status")
df.select("*", new_col).show()
+----+---+------+
|name|age|status|
+----+---+------+
|Alex| 20|junior|
| Bob| 30|senior|
+----+---+------+
請注意以下事項:
-
"*"
指的是df
的所有列。 -
我們使用
when(~)
和otherwise(~)
模式有條件地填充列的值 -
我們使用
alias(~)
方法為新列分配標簽
注意 F.col("age")
也可以替換為 df["age"]
:
new_col = F.when(df["age"] < 25, "junior").otherwise("senior").alias("status")
df.select("*", new_col).show()
+----+---+------+
|name|age|status|
+----+---+------+
|Alex| 20|junior|
| Bob| 30|senior|
+----+---+------+
col 如何知道要引用哪個 DataFrame 的列?
請注意 col(~)
方法如何僅將列名稱作為參數。 PySpark 延遲執行我們的代碼,並等待調用某個操作(例如 show()
)來運行所有轉換(例如 df.select(~)
)。因此,PySpark 將具有所需的上下文來破譯 col(~)
所引用的 DataFrame 的列。
例如,假設我們有以下兩個具有相同架構的 PySpark DataFrame:
df1 = spark.createDataFrame([["Alex", 20], ["Bob", 30]], ["name", "age"])
df2 = spark.createDataFrame([["Cathy", 40], ["Doge", 50]], ["name", "age"])
my_col = F.col("name")
讓我們從 df1
中選擇 name
列:
df1.select(my_col).show()
+----+
|name|
+----+
|Alex|
| Bob|
+----+
在這裏, PySpark 知道我們正在引用 df1
的名稱列,因為 df1
正在調用轉換 ( select(~)
)。
現在讓我們從 df2
中選擇 name
列:
df2.select(my_col).show()
+-----+
| name|
+-----+
|Cathy|
| Doge|
+-----+
同樣,PySpark 知道這次 name
列引用了 df2
的列。
相關用法
- Python PySpark SQL Functions collect_list方法用法及代碼示例
- Python PySpark SQL Functions collect_set方法用法及代碼示例
- Python PySpark SQL Functions concat方法用法及代碼示例
- Python PySpark SQL Functions count_distinct方法用法及代碼示例
- Python PySpark SQL Functions concat_ws方法用法及代碼示例
- Python PySpark SQL Functions countDistinct方法用法及代碼示例
- Python PySpark SQL Functions count方法用法及代碼示例
- Python PySpark SQL Functions split方法用法及代碼示例
- Python PySpark SQL Functions repeat方法用法及代碼示例
- Python PySpark SQL Functions explode方法用法及代碼示例
- Python PySpark SQL Functions instr方法用法及代碼示例
- Python PySpark SQL Functions dayofmonth方法用法及代碼示例
- Python PySpark SQL Functions date_add方法用法及代碼示例
- Python PySpark SQL Functions array方法用法及代碼示例
- Python PySpark SQL Functions translate方法用法及代碼示例
- Python PySpark SQL Functions dayofweek方法用法及代碼示例
- Python PySpark SQL Functions expr方法用法及代碼示例
- Python PySpark SQL Functions regexp_extract方法用法及代碼示例
- Python PySpark SQL Functions regexp_replace方法用法及代碼示例
- Python PySpark SQL Functions round方法用法及代碼示例
- Python PySpark SQL Functions date_format方法用法及代碼示例
- Python PySpark SQL Functions lit方法用法及代碼示例
- Python PySpark SQL Functions upper方法用法及代碼示例
- Python PySpark SQL Functions length方法用法及代碼示例
- Python PySpark SQL Functions dayofyear方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark SQL Functions | col method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。