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


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