如何在pyspark中重命名嵌套列中的列

toiithl6  于 2023-04-19  发布在  Spark
关注(0)|答案(1)|浏览(133)

我有一个列产品,其中有一个名为Color的嵌套列。我想从列颜色中删除{}。
我不想展平列并重命名它。我想直接重命名列或删除列。

|-- product: struct (nullable = true) 
| |-- {Color}: string (nullable = true)

我已经尝试删除它,但它不工作。我不想创建一个新的结构体,因为我有更多的嵌套列,他们太多了。

|-- product: struct (nullable = true)
| |-- {Color}: string (nullable = true)#
iqih9akk

iqih9akk1#

  • 您可以使用withColumn来重命名嵌套列。以下是您可以使用的代码。我有一个具有以下模式的dataframe(与您的相同):
df.printSchema()

  • 现在使用withColumn,如下图所示,您可以更改嵌套列颜色的名称:
from pyspark.sql.functions import col, struct

df.withColumn("product", struct(col("product.{Color}").alias("Color"))).printSchema()

相关问题