В pyspark мы пытаемся объединить два фрейма данных.мы соединяем фрейм данных с другим (который сам генерируется соединением)
result3 = result2.join(df3, df3.mktg_id == result2."max(acct_mkt_id)").select('result2.trans_dt', 'result2.channel','result2.loc_id','result2.meta_reason','max(acct_mkt_id)', 'max(campaign_name)').groupBy('result2.trans_dt', 'result2.channel','result2.loc_id','result2.meta_reason','max(acct_mkt_id)', 'max(campaign_name)').agg(sum("result2.bskt_sum"))
Сообщение об ошибке
SyntaxError: invalid syntax
Однако я получаю синтаксическую ошибку.теперь result2.schema имеет поле max (acct_mkt_id), но если я попытаюсь без кавычек
result3 = result2.join(df3, df3.mktg_id == result2.max(acct_mkt_id)).select('result2.trans_dt', 'result2.channel','result2.loc_id','result2.meta_reason','max(acct_mkt_id)', 'max(campaign_name)').groupBy('result2.trans_dt', 'result2.channel','result2.loc_id','result2.meta_reason','max(acct_mkt_id)', 'max(campaign_name)').agg(sum("result2.bskt_sum"))
Сообщение об ошибке -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/hdp/2.5.3.0-37/spark/python/pyspark/sql/dataframe.py", line 842, in __getattr__
"'%s' object has no attribute '%s'" % (self.__class__.__name__, name))
AttributeError: 'DataFrame' object has no attribute 'max'
Подскажите, пожалуйста, что мне не хватает иликак мне обойти эту ошибку.