DataFrame 中的一欄。
支援 Spark Connect
語法
參見 建立欄位實例。
方法
| 方法 | 說明 |
|---|---|
alias(*alias, **kwargs) |
回傳此欄位並以新名稱別名(若是回傳多欄的表達式,如 explode)。 |
asc() |
回傳一個基於欄位升序的排序表達式。 |
asc_nulls_first() |
回傳一個基於欄位升序的排序運算式,空值會在非空值之前回傳。 |
asc_nulls_last() |
回傳一個基於欄位遞增順序的排序運算式,非空值後會出現空值。 |
astype(dataType) |
cast() 的別名。 |
between(lowerBound, upperBound) |
檢查當前欄位的值是否介於指定的上下界之間,包含在內。 |
bitwiseAND(other) |
用另一個表達式逐位元計算 AND。 |
bitwiseOR(other) |
用另一個表達式逐位元計算這個表達式的 OR。 |
bitwiseXOR(other) |
將此表達式與另一個表達式進行位元異或運算。 |
cast(dataType) |
將欄位鑄造成型別 dataType。 |
contains(other) |
包含另一個元素。 |
desc() |
回傳一個基於欄位遞減順序的排序表達式。 |
desc_nulls_first() |
回傳一個基於欄位降序的排序運算式,且空值出現在非空值之前。 |
desc_nulls_last() |
回傳一個基於欄位降序的排序運算式,非空值後方會出現空值。 |
dropFields(*fieldNames) |
一個用名稱丟棄 StructType 欄位的表達式。 |
endswith(other) |
弦結尾為。 |
eqNullSafe(other) |
對於虛無值的安全等式檢定。 |
getField(name) |
一個在 StructType 中以名稱取得欄位的表達式。 |
getItem(key) |
一個從清單中取得序數位置的項目,或從字典中按鍵取得項目的表達式。 |
ilike(other) |
SQL ILIKE 表達式(大小寫不區分 LIKE)。 |
isNaN() |
如果目前的表達式是 NaN,則成立。 |
isNotNull() |
如果目前的運算式不是空,則為真。 |
isNull() |
若目前表達式為空,則為真。 |
isin(*cols) |
一個布林運算式,若該表達式的值包含於參數的評估值中,則該表達式被評估為真。 |
like(other) |
SQL 類似表達式。 |
name(*alias, **kwargs) |
alias() 的別名。 |
otherwise(value) |
評估一份條件清單,並傳回多個可能的結果運算式之一。 |
over(window) |
定義視窗欄位。 |
rlike(other) |
SQL RLIKE 表達式(類似正則表達式)。 |
startswith(other) |
String 從 |
substr(startPos, length) |
回傳一個欄位,它是該欄位的子字串。 |
try_cast(dataType) |
這是一個特殊版本 cast ,執行相同操作,但如果 invoke 方法拋出異常,則會回傳 NULL 值,而不是產生錯誤。 |
when(condition, value) |
評估一份條件清單,並傳回多個可能的結果運算式之一。 |
withField(fieldName, col) |
一個用名稱新增或替換 StructType 欄位的表達式。 |
操作員
Column 類別支援標準的 Python 運算子,用於算術、比較及邏輯運算:
-
算術:
+,-,*,/%, ,** -
比較:
==,!=,<,<=>, ,>= -
邏輯:
&(與)、|(或)、~(非)
Examples
欲了解更簡單的欄位使用範例,請參見 欄位運算。
建立欄位實例
從資料框架中選擇欄位:
df = spark.createDataFrame(
[(2, "Alice"), (5, "Bob")], ["age", "name"])
# Access by attribute
df.name
# Column<'name'>
# Access by bracket notation
df["name"]
# Column<'name'>
從一個表達式建立欄位:
df.age + 1
# Column<...>
1 / df.age
# Column<...>
基本欄位操作
# Arithmetic operations
df.select(df.age + 10).show()
# Comparison operations
df.filter(df.age > 3).show()
# String operations
df.filter(df.name.startswith("A")).show()
# Null checking
df.filter(df.name.isNotNull()).show()
條件邏輯
from pyspark.sql import functions as F
df.select(
F.when(df.age < 3, "child")
.when(df.age < 13, "kid")
.otherwise("adult")
.alias("age_group")
).show()
排序
df.orderBy(df.age.desc()).show()
df.orderBy(df.age.asc_nulls_last()).show()