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

PySpark使用Lag函数报错TypeError: 'int' object is not callable求助

PySpark中lag函数报错TypeError: 'int' object is not callable的原因及解决方法

报错核心原因

你代码里肯定是不小心定义了一个名为lag的整数变量,直接覆盖了PySpark SQL函数库中的lag方法。当你执行lag(col("datetime"))时,实际是在尝试调用一个整数类型的变量,而整数不是可调用对象,因此触发这个错误。

解决步骤

  1. 修复变量名冲突
    遍历代码上下文,找到类似lag = 1(或其他整数值)的定义,要么把这个变量重命名(比如改为lag_offset),要么直接删除这个不必要的变量。

  2. 确保正确导入lag函数
    确认代码开头已经导入PySpark的lag函数,避免因未导入导致的其他问题:

    from pyspark.sql.functions import lag, col
    from pyspark.sql.window import Window
    

示例对比

错误代码(导致冲突)

# 错误:定义了int类型的lag变量,覆盖了PySpark函数
lag = 1
from pyspark.sql.functions import lag, col
from pyspark.sql.window import Window

dataActLag = dataAct.withColumn("infoDatetimeLag", lag(col("datetime")).over(Window.orderBy("datetime")))

正确代码

# 正确:导入函数,避免变量名冲突
from pyspark.sql.functions import lag, col
from pyspark.sql.window import Window

# 若需要使用偏移量变量,换个名称
lag_offset = 1

dataActLag = dataAct.withColumn("infoDatetimeLag", lag(col("datetime")).over(Window.orderBy("datetime")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:22:25