Я хочу напрямую добавить 3 новых столбца в свой фрейм данных PySpark (без преобразования в фрейм данных pandas) — 'inferenced_data': Level_L1, Level_L2,Alert_Reason. Значение для этих столбцов необходимо заполнить из значений, возвращаемых функцией ниже:
****Input values passed to the function:****
topics = ['Critical','Insight']
themes = ['escalation_fg','process_fg']
reasons = ['reason_escalation_fg','reason_process_fg']
l2_themes = ['CRC','Process']
def set_alert_priority(row, topics, themes, reasons, l2_themes):
num_alerts_tagged = len([c for c in themes if row[c] == 1])
row_sum = sum([row[c] for c in themes])
if num_alerts_tagged == 0:
return ('No Action Taken', 'No Action Taken', 'No Action Taken')
elif row_sum == -25:
return ('GPT Error', 'GPT Error', 'GPT Error')
else:
for topic, theme, reason, l2_theme in zip(topics, themes, reasons, l2_themes):
if row[theme] == 1:
return (topic, l2_theme, row[reason])
inferenced_data[['Level_L1', 'Level_L1', 'Alert_Reason']] = inferenced_data.apply(lambda row : set_alert_priority(row, topics, themes, reasons, l2_themes), axis=1)
Но при этом я получаю сообщение об ошибке: "Применение атрибута не поддерживается".
Полагаю, это связано с тем, что Метод «применить» не для фрейма данных Spark? Какая может быть альтернатива в данном случае?
Я хочу напрямую добавить 3 новых столбца в свой [b]фрейм данных PySpark[/b] (без преобразования в фрейм данных pandas) — 'inferenced_data': Level_L1, Level_L2,Alert_Reason. Значение для этих столбцов необходимо заполнить из значений, возвращаемых функцией ниже: [code]****Input values passed to the function:****
def set_alert_priority(row, topics, themes, reasons, l2_themes): num_alerts_tagged = len([c for c in themes if row[c] == 1]) row_sum = sum([row[c] for c in themes])
inferenced_data[['Level_L1', 'Level_L1', 'Alert_Reason']] = inferenced_data.apply(lambda row : set_alert_priority(row, topics, themes, reasons, l2_themes), axis=1) [/code] Но при этом я получаю сообщение об ошибке: [b]"Применение атрибута не поддерживается".[/b] Полагаю, это связано с тем, что Метод «применить» не для фрейма данных Spark? Какая может быть альтернатива в данном случае?