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