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