Функция кода PySpark для добавления столбца в кадр данных SparkPython

Программы на Python
Ответить
Anonymous
 Функция кода PySpark для добавления столбца в кадр данных Spark

Сообщение Anonymous »

Я хочу напрямую добавить 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? Какая может быть альтернатива в данном случае?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -dataframe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»