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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。