PySpark窗口函数使用报错:TypeError: 'Column' object is not callable
PySpark窗口函数报错:TypeError: 'Column' object is not callable 解决方法
错误原因
代码里F.row_number().OVER(...)的写法有误,PySpark中窗口函数绑定窗口规则的方法是小写的over(),而非大写的OVER。大写的OVER会被解析为Column对象的属性,而非可调用的方法,因此触发了类型错误。
修正后的代码
from pyspark.sql import Row, functions as F from pyspark.sql.functions import col, row_number from pyspark.sql.window import Window from pyspark.sql import SparkSession # 将大写OVER改为小写over Join_transaciones3_df = Join_transaciones3_df.withColumn( "row_num", F.row_number().over(Window.partitionBy("Clave").orderBy(col("transaction_date"))) )
注意事项
PySpark的API方法命名遵循小写规范,这类SQL风格的方法(如over、partitionBy、orderBy)不要和SQL原生语法中的大写关键字混淆。
内容的提问来源于stack exchange,提问作者felipe calvo
相关产品推荐
相关产品推荐

