共用方式為


柱類

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()