У меня есть датафрейм, полученный после чтения таблицы, как показано ниже, с использованием spark:
val orgDF = spark.read.format("jdbc").options("url", url).options("dbtable","select id, org_name, delete_state, soft_del, 0 as soft_del from schema.table as orgTable").options("user",username)options("password",pwd).load()
Я вижу выходные данные из кадра данных, как показано ниже:
-----------------------------------------
id | org_name | delete_state | soft_del
-----------------------------------------
1 | Net | delete | 0
2 | Vert | delete | 0
3 | Bio | insert | 0
4 | Card | delete | 0
7 | stock | update | 0
-----------------------------------------
Перед сохранением кадра данных в HDFS я пытаюсь установить значение col: soft_del как '1', если значение столбца в delete_state
равно delete
и создайте окончательный кадр данных, как показано ниже:
-----------------------------------------
id | org_name | delete_state | soft_del
-----------------------------------------
1 | Net | delete | 1
2 | Vert | delete | 1
3 | Bio | insert | 0
4 | Card | delete | 1
7 | Stock | update | 0
-----------------------------------------
Я знаю, что есть способ сделать это, как показано ниже:
orgDF.createOrReplaceTempView("orgData")
spark.sql("update orgData set soft_del = 1 where delete_state = 'delete'")
Я также пытаюсь узнать, как использовать функции фрейма данных, и не могу найти правильный материал.
Может кто-нибудь сообщить, как я могу сделать это, используя функции dataframe?