У меня есть тип данных
[value: array<struct<_1:string,_2:string>>]
Я хочу добавить новый столбец к этому фрейму данных, который включает в себя длину всех уникальных элементов, извлекаемых путем расширения всех кортежей в каждой строке. Моя основная цель - отбросить строку, когда эта длина превышает определенное значение.
Пока у меня есть только длина каждой строки - код, показанный ниже
val size = inputDF.rdd.map(_.getSeq[Row](0)).map(x => {
val aSet = scala.collection.mutable.Set[String]()
x.map {
case Row(aa: String, bb: String) =>
aSet += aa
aSet += bb
}
(aSet.size)
})
Однако, когда я пытаюсь добавить это как новый столбец к данным inputDF, это не работает.
Пример inputDF:
val inputDF = Seq(
(Array(("A","B"))),
(Array(("C","D"),("C","E"),("D","F"),("F","G"),("G","H"))),
(Array(("C","D"))),
(Array(("P","Q"),("R","S"),("T","U"),("T","V")))
).toDF
И ожидаемый столбец, который будет добавлен к этому, имеет значения - 2,6,2,7