У меня есть таблица, в которой есть столбец, содержащий массив, подобный этому -
Student_ID | Subject_List | New_Subject
1 | [Mat, Phy, Eng] | Chem
Я хочу добавить новый предмет в список тем и получить новый список.
Созданиеdataframe -
val df = sc.parallelize(Seq((1, Array("Mat", "Phy", "Eng"), "Chem"))).toDF("Student_ID","Subject_List","New_Subject")
Я пробовал это с UDF следующим образом -
def append_list = (arr: Seq[String], s: String) => {
arr :+ s
}
val append_list_UDF = udf(append_list)
val df_new = df.withColumn("New_List", append_list_UDF($"Subject_List",$"New_Subject"))
С UDF я получаю необходимый вывод
Student_ID | Subject_List | New_Subject | New_List
1 | [Mat, Phy, Eng] | Chem | [Mat, Phy, Eng, Chem]
Можем ли мы это сделатьбез udf?Спасибо.