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


Python PySpark DataFrame select方法用法及代码示例


PySpark DataFrame 的 select(~) 方法返回具有指定列的新 DataFrame。

参数

1.*cols | stringColumnlist

要包含在返回的 DataFrame 中的列。

返回值

一个新的 PySpark 数据帧。

例子

考虑以下PySpark DataFrame:

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



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

选择 PySpark DataFrame 的单列

要选择单个列,请将列名称作为字符串传递:

df.select("name").show()



+----+
|name|
+----+
|Alex|
| Bob|
+----+

或者等效地,我们可以传入一个 Column 对象:

df.select(df["name"]).show()



+----+
|name|
+----+
|Alex|
| Bob|
+----+

这里, df["name"] 的类型是 Column 。在这里,您可以将 select(~) 的作用视为将 Column 对象转换为 PySpark DataFrame。

或者等效地,也可以使用 sql.function 获取 Column 对象:

import pyspark.sql.functions as F
df.select(F.col("name")).show()



+----+
|name|
+----+
|Alex|
| Bob|
+----+

选择 PySpark DataFrame 的多个列

要选择列 nameage

df.select("name","age").show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

或者等效地,我们可以提供多个 Column 对象:

df.select(df["name"],df["age"]).show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

或者等效地,我们可以提供从 sql.functions 获得的 Column 对象:

import pyspark.sql.functions as F
df.select(F.col("name"), F.col("age")).show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

选择 PySpark DataFrame 的所有列

要选择所有列,请传递 "*"

df.select("*").show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

选择给定列标签列表的列

要选择给定列标签列表的列,请使用 * 运算符:

cols = ["name", "age"]
df.select(cols).show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

这里,* 运算符用于将列表转换为位置参数。

选择以某个子字符串开头的列

要选择以特定子字符串开头的列:

cols = [col for col in df.columns if col.startswith("na")]
df.select(cols).show()



+----+
|name|
+----+
|Alex|
| Bob|
+----+

在这里,我们使用 Python 的列表理解来获取以子字符串 "na" 开头的列标签列表:

cols = [col for col in df.columns if col.startswith("na")]
cols



['name']

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark DataFrame | select method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。