Ошибка типа: объект «Столбец» не может быть вызван в pyspark

#pyspark #apache-spark-sql

Вопрос:

Когда я выполняю приведенную ниже команду pyspark , я получаю сообщение об ошибке. Не могли бы вы, пожалуйста, помочь мне с этим? Есть какие-нибудь зацепки, аренда?

Команда:

 df1.join(df2,df1.emp_id==df2.emp_id,how='outer').select([when(~lit(df1[c]).eqNullsafe(lit(df2[c])),
        array(lit(df1[c]).cast("string"),lit(df2[c]).cast("string"))).alias('c') for c in cols]).show(10,False)
 

сообщение об ошибке:

 TypeError                                 Traceback (most recent call last)
<ipython-input-78-09098eca6bc7> in <module>
      1 df1.join(df2,df1.emp_id==df2.emp_id,how='outer').select([when(~lit(df1[c]).eqNullsafe(lit(df2[c])),
----> 2         array(lit(df1[c]).cast("string"),lit(df2[c]).cast("string"))).alias('c') for c in cols]).show(10,False)

<ipython-input-78-09098eca6bc7> in <listcomp>(.0)
      1 df1.join(df2,df1.emp_id==df2.emp_id,how='outer').select([when(~lit(df1[c]).eqNullsafe(lit(df2[c])),
----> 2         array(lit(df1[c]).cast("string"),lit(df2[c]).cast("string"))).alias('c') for c in cols]).show(10,False)

TypeError: 'Column' object is not callable
 

Комментарии:

1. Просто любопытно, что вы пытаетесь сделать с оператором when внутри select и правильно ли это синтаксически? Если вы обновите свой вопрос некоторыми исходными данными и конечными результатами, которые вы ищете, кто-то может предоставить решение или варианты, которые вы могли бы использовать для получения желаемого результата.