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


Python pyspark Column.dropFields用法及代码示例


本文简要介绍 pyspark.sql.Column.dropFields 的用法。

用法:

Column.dropFields(*fieldNames)

按名称删除StructType 中的字段的表达式。如果架构不包含字段名称,则这是 no-op。

版本 3.1.0 中的新函数。

例子

>>> from pyspark.sql import Row
>>> from pyspark.sql.functions import col, lit
>>> df = spark.createDataFrame([
...     Row(a=Row(b=1, c=2, d=3, e=Row(f=4, g=5, h=6)))])
>>> df.withColumn('a', df['a'].dropFields('b')).show()
+-----------------+
|                a|
+-----------------+
|{2, 3, {4, 5, 6}}|
+-----------------+
>>> df.withColumn('a', df['a'].dropFields('b', 'c')).show()
+--------------+
|             a|
+--------------+
|{3, {4, 5, 6}}|
+--------------+

此方法支持直接删除多个嵌套字段,例如

>>> df.withColumn("a", col("a").dropFields("e.g", "e.h")).show()
+--------------+
|             a|
+--------------+
|{1, 2, 3, {4}}|
+--------------+

但是,如果您要添加/替换多个嵌套字段,最好在添加/替换多个字段之前提取嵌套结构,例如

>>> df.select(col("a").withField(
...     "e", col("a.e").dropFields("g", "h")).alias("a")
... ).show()
+--------------+
|             a|
+--------------+
|{1, 2, 3, {4}}|
+--------------+

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.Column.dropFields。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。