У меня есть дата-карта с фреймом данных со столбцом типа карты. Я хочу добавить больше записей на эту карту
Я делаю следующее, что работает:
val origMap = df("mapping")
val tempMap = tempDFFields.flatMap(tempField => Array(lit(tempField), tempDF(tempField))): _*)
origMap.withColumn("mapping", tempMap.union(origMap))
tempDFFields - список имен столбцов в tempDF.
Я создаю карту всех colname-> colvalue из tempDF и хочу добавить ее в исходный DF.
Он жалуется, что я передаю массив Column вместо одного экземпляра Column. Как я могу передать один экземпляр столбца здесь .. Я просто хочу обновить карту и сохранить ее обратно.
Пример:
Input
origDF
+--------+-----------------------------
|id | amount | mapping |
|1 | 10 | {a=b, c=d} |
|3 | 90 | {e=f, g=h} |
tempDF
+-----
|Id |
|1 |
вывод: origDF
+--------+-----------------------------
|id | amount | mapping |
|1 | 10 | {a=b, c=d, id=1} |
|3 | 90 | {e=f, g=h, id=1} |