У меня есть датафрейм с scala массивом кортежей (индекс, значение), как показано ниже, индекс имеет значения от 1 до 4
id | units_flag_tuples
id1 | [(3,2.0), (4,6.0)]
id2 | [(1,10.0), (2,2.0), (3,5.0)]
Я хотел бы получить доступ к значению из массива и поместите его в столбцы на основе индекса (unit1, unit2, unit3, unit4):
ID | unit1| unit2 | unit3 | unit 4
id1 | null | null | 2.0 | 6.0
id2 | 10.0 | 2.0 | 5.0 | null
вот код:
df
.withColumn("unit1", col("units_flag_tuples").find(_._1 == '1').get._2 )
.withColumn("unit2", col("units_flag_tuples").find(_._1 == '2').get._2 )
.withColumn("unit3", col("units_flag_tuples").find(_._1 == '3').get._2 )
.withColumn("unit4", col("units_flag_tuples").find(_._1 == '4').get._2 )
Вот сообщение об ошибке, которое я получаю:
ошибка: поиск значения не является членом org. apache .spark. sql .Column
Как устранить эту ошибку или как лучше сделай это?