You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks执行PySpark代码触发Column is not iterable报错如何解决

问题原因
  • 报错的核心原因是withColumn方法的第一个参数要求传入字符串格式的列名,你当前传入了col("Cliente")返回的Column类型对象,PySpark内部处理时把传入的Column对象当作可迭代的字符串解析,因此抛出TypeError: Column is not iterable异常。
  • 额外注意:你当前的when逻辑没有加otherwise分支,不满足匹配条件的行的Cliente字段会被自动赋值为NULL,不符合字段替换的预期。
修复后代码
from pyspark.sql.functions import col, when, regexp_replace

dim_processo = dim_processo.withColumn(
    "Cliente",  # 第一个参数传字符串格式的列名即可
    when(
        dim_processo.Cliente.endswith('"parque",lda.'),
        regexp_replace(
            dim_processo.Cliente, 'Restaurante "parque",lda.', "Restaurante parque,lda."
        )
    ).otherwise(dim_processo.Cliente)  # 不匹配的行保留原值
)
补充说明

如果需要全局替换所有匹配的字符串,不需要先判断后缀可以直接调用regexp_replace,简化写法如下:

dim_processo = dim_processo.withColumn(
    "Cliente",
    regexp_replace(col("Cliente"), 'Restaurante "parque",lda.', "Restaurante parque,lda.")
)

内容的提问来源于stack exchange,提问作者saraz0r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:45:05