PySpark 列的 dropFields(~)
方法返回一個新的 PySpark Column
對象,並刪除指定的嵌套字段。
參數
1. *fieldNames
| string
要刪除的嵌套字段。
返回值
PySpark 專欄。
例子
考慮以下帶有一些嵌套行的 PySpark DataFrame:
data = [
Row(name="Alex", age=20, friend=Row(name="Bob",age=30,height=150)),
Row(name="Cathy", age=40, friend=Row(name="Doge",age=40,height=180))
]
df = spark.createDataFrame(data)
df.show()
+-----+---+---------------+
| name|age| friend|
+-----+---+---------------+
| Alex| 20| {Bob, 30, 150}|
|Cathy| 40|{Doge, 40, 180}|
+-----+---+---------------+
這個PySpark DataFrame的架構如下:
df.printSchema()
root
|-- name: string (nullable = true)
|-- age: long (nullable = true)
|-- friend: struct (nullable = true)
| |-- name: string (nullable = true)
| |-- age: long (nullable = true)
| |-- height: long (nullable = true)
刪除 PySpark 列中的某些嵌套字段
要刪除 friend
下的 age
和 height
字段,請使用 dropFields(~)
方法:
updated_col = df["friend"].dropFields("age", "height")
df_new = df.withColumn("friend", updated_col)
df_new.show()
+-----+---+------+
| name|age|friend|
+-----+---+------+
| Alex| 20| {Bob}|
|Cathy| 40|{Doge}|
+-----+---+------+
在此,請注意以下事項:
-
我們使用
withColumn(~)
方法用dropFields(~)
返回的新列更新friend
列。
此更新的PySpark DataFrame 的架構如下:
df_new.printSchema()
root
|-- name: string (nullable = true)
|-- age: long (nullable = true)
|-- friend: struct (nullable = true)
| |-- name: string (nullable = true)
請注意 age
和 height
字段如何不再出現在 friend
下。
注意
即使您要刪除的嵌套字段不存在,也不會拋出錯誤:
updated_col = df["friend"].dropFields("ZZZZZZZZZ")
df_new = df.withColumn("friend", updated_col)
df_new.show()
+-----+---+---------------+
| name|age| friend|
+-----+---+---------------+
| Alex| 20| {Bob, 30, 150}|
|Cathy| 40|{Doge, 40, 180}|
+-----+---+---------------+
這裏,嵌套字段"ZZZZZZZZZ"
顯然不存在,但沒有拋出錯誤。
相關用法
- Python PySpark Column isNotNull方法用法及代碼示例
- Python PySpark Column getItem方法用法及代碼示例
- Python PySpark Column rlike方法用法及代碼示例
- Python PySpark Column cast方法用法及代碼示例
- Python PySpark Column withField方法用法及代碼示例
- Python PySpark Column endswith方法用法及代碼示例
- Python PySpark Column alias方法用法及代碼示例
- Python PySpark Column isNull方法用法及代碼示例
- Python PySpark Column otherwise方法用法及代碼示例
- Python PySpark Column contains方法用法及代碼示例
- Python PySpark Column startswith方法用法及代碼示例
- Python PySpark Column isin方法用法及代碼示例
- Python PySpark Column substr方法用法及代碼示例
- Python Collections.UserString用法及代碼示例
- Python Collections.UserDict用法及代碼示例
- Python Collections.UserList用法及代碼示例
- Python Django Collate用法及代碼示例
- Python Django ContentTypeManager用法及代碼示例
- Python Condition release()用法及代碼示例
- Python Condition notify()用法及代碼示例
- Python Django ContextMixin.get_context_data用法及代碼示例
- Python Condition wait()用法及代碼示例
- Python Django Coalesce用法及代碼示例
- Python Django Cot用法及代碼示例
- Python Django CoordTransform用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark Column | dropFields method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。