当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。