Ошибка объекта, который не вызывается | Где функция

Я пытаюсь выполнить запрос ниже:

df3 = df1.join(df2, df1["DID"] == df2["JID"],'inner')\
          .select(df1["DID"],df1["amt"]-df2["amt"]\
          .where(df1["DID"]== "BIG123")).show()

Я получаю сообщение об ошибке, как показано ниже:

TypeError: объект 'Column' не
вызывается TypeError Traceback (последний вызов последний)

В чем проблема с запросом и как ее исправить?

2 ответа

В вашем запросе есть проблема с синтаксисом. Закрывающая скобка для выбора идет после блока where. Ниже приводится синтаксический запрос.

df3 = df1.join(df2, df1["DID"] == df2["JID"],'inner')\
          .select(df1["DID"],df1["amt"]-df2["amt"])\
          .where(df1["DID"]== "BIG123").show()

Попробуйте этот код:

 from pyspark.sql import functions as F    

 df3 = df1.join(df2, df1["DID"] == df2["JID"] ,how = 'inner')\
      .select("DID",df1["amt"]-df2["amt"])\
      .where(F.col("DID")== "BIG123" ).show()

Лучший,

Абакар

Другие вопросы по тегам