當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PySpark Column cast方法用法及代碼示例


PySpark 列的cast(~) 方法返回指定類型的新Column

參數

1.dataType | Typestring

將列轉換為的類型。

返回值

一個新的 Column 對象。

例子

考慮以下PySpark DataFrame:

df = spark.createDataFrame([("Alex", 20), ("Bob", 30), ("Cathy", 40)], ["name", "age"])
df.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 30|
|Cathy| 40|
+-----+---+

將 PySpark 列類型轉換為字符串

要將 DataFrame 的 age 列的類型從數字轉換為 string

df_new = df.withColumn("age", df["age"].cast("string"))
df_new.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 30|
|Cathy| 40|
+-----+---+

同樣,我們可以像這樣傳入 StringType() 方法:

from pyspark.sql.types import StringType
df_new = df.withColumn("age", df["age"].cast(StringType()))
df_new.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 30|
|Cathy| 40|
+-----+---+

為了簡單起見,我建議傳遞 "string" 而不是 StringType()

要確認列類型已轉換為字符串,請使用 printSchema() 方法:

df_new.printSchema()



root
 |-- name: string (nullable = true)
 |-- age: string (nullable = true)

將 PySpark 列類型轉換為整數

要將列類型轉換為整數,請使用 cast("int")

df_new = df.withColumn("age", df["age"].cast("int"))
df_new.printSchema()



root
 |-- name: string (nullable = true)
 |-- age: integer (nullable = true)

將 PySpark 列類型轉換為 float

要將列類型轉換為浮點型,請使用 cast("float")

df_new = df.withColumn("age", df["age"].cast("float"))
df_new.printSchema()



root
 |-- name: string (nullable = true)
 |-- age: float (nullable = true)

將 PySpark 列類型轉換為日期

要將 PySpark 列類型轉換為日期,請使用 to_date(~) 方法而不是 cast(~)

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark Column | cast method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。