【问题标题】:why am I getting column object not callable error in pyspark?为什么我在 pyspark 中收到列对象不可调用错误?
【发布时间】:2023-01-24 22:37:49
【问题描述】:

我正在做一个简单的镶木地板文件读取并运行查询以从左表中找到不匹配的行。请参阅下面的代码 sn-p。

argTestData = '<path to parquet file>'
tst_DF = spark.read.option('header', True).parquet(argTestData)


argrefData = '<path to parquet file>'
refDF = spark.read.option('header', True).parquet(argrefData)


cond = ["col1", "col2", "col3"]
fi = tst_DF.join(refDF, cond , "left_anti")

到目前为止一切正常。但是,作为一项要求,如果上面给出的计数 > 0,我需要获取元素列表,即如果 fi.count() > 0 的值,那么我需要元素名称。所以,我尝试了下面的代码,但它抛出了错误。

if fi.filter(col("col1").count() > 0).collect():
    fi.show()

错误

TypeError: 'Column' object is not callable

笔记:

  • 我有 3 列作为连接条件,它们在列表中并分配给变量 cond,我需要获取这 3 列的不匹配记录,因此 if 条件必须容纳它们。当然,由于join,还有许多其他专栏。

请建议我在哪里犯错误。 谢谢

【问题讨论】:

  • “计数”方法不是列对象的方法

标签: python-3.x pyspark


【解决方案1】:

您是否导入了列函数?

from pyspark.sql import functions as F
...
if fi.filter(F.col("col1").count() > 0).collect():
    fi.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2016-09-06
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多