【问题标题】:pyspark dataframe passing to function error : TypeError: 'str' object is not callable传递给函数错误的 pyspark 数据帧:TypeError: \'str\' object is not callable
【发布时间】:2023-02-20 23:53:40
【问题描述】:

在我的 spark aws 胶水作业中,使用 pyspark 在主函数中创建数据框。然后将此数据帧传递给函数,并在函数中对数据帧进行其他操作。但是在函数中出现错误 - TypeError: 'str' object is not callable

from pyspark.sql.functions import *

def generate_datafame(df_input):
   df.show(10, False)
   df = df.filter((col('sequenceNumber') != "") & (col('sequenceNumber').isNotNull()))  -> getting error in this line
   df.show(10, False)
 

if __name__ == '__main__':
   # some code
   df_input.show(10,False)
   generate_datafame(df_input)

【问题讨论】:

  • col 在哪里定义的?
  • @PeterWood 我在脚本的开头添加了 import 语句。
  • 请出示你的 python imports
  • @AlexChadyuk 我已经更新了问题
  • 用你自己的话来说,代码写着col('sequenceNumber'),你认为这应该是什么意思? col是什么,后面写('sequenceNumber')会发生什么?您似乎打算使用 pyspark.sql.functions 中的 col 函数,但我无法理解预期的推理。那是用来创建一个新的专栏对吧?因此,我们如何才能明智地对该列的内容进行任何测试?总体而言,您希望代码做什么?

标签: python pyspark aws-glue


【解决方案1】:

您似乎错误地使用了pyspark.pandas.DataFrame.filter。根据spec,该函数不会根据其内容过滤数据帧;过滤器应用于索引的标签。你应该使用另一个功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-23
    • 2011-04-26
    • 1970-01-01
    • 2013-05-28
    • 2021-02-03
    • 2020-12-15
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多