PySpark DataFrame调用filter()报unexpected keyword argument错误如何解决
问题根源
该报错的核心原因是PySpark的filter()方法不支持列名=值的关键字参数传参形式,你当前使用的是Pandas的语法规则,无法在PySpark场景下生效,因此修改引号格式无法解决问题。
解决方案
以下是两种可直接使用的正确写法:
写法1:通过col函数构造判断条件
可读性更强,适合复杂筛选场景:
from pyspark.sql.functions import col df4 = df3.select("*").filter(col("Date_Created") == "Jan 21")
写法2:传入SQL格式筛选字符串
无需额外导入依赖,写法更简洁:
df4 = df3.select("*").filter("Date_Created = 'Jan 21'")
如果你的Date_Created列存储的是日期类型而非字符串类型,需要先格式化后再匹配:
from pyspark.sql.functions import date_format, col df4 = df3.select("*").filter(date_format(col("Date_Created"), "MMM dd") == "Jan 21")
内容的提问来源于stack exchange,提问作者Lina
相关产品推荐
相关产品推荐

