Я написал следующую функцию, которая объединяет две строки и добавляет их в новый столбец кадра данных:
def idCol(firstCol: String, secondCol: String, IdCol: String = FUNCTIONAL_ID): DataFrame = {
df.withColumn(IdCol,concat(col(firstCol),lit("."),col(secondCol))).dropDuplicates(IdCol)
}
Моя цель - заменить использование разных строк одним массивом строк, а затем определить новый столбец из конкатенации этих различных элементов массива. Я использую массив в целях для того, чтобы иметь изменяемый сбор данных в случае, если количество элементов для объединения изменений.
У вас есть идеи о том, как это сделать?
Таким образом, функция будет изменена как:
def idCol(cols:Array[String], IdCol: String = FUNCTIONAL_ID): DataFrame = {
df.withColumn(IdCol,concat(col(cols(0)),lit("."),col(cols(1))).dropDuplicates(IdCol)
}
Я хочу обойти cols (0), cols (1) и выполнить общее преобразование, которое берет все элементы массива и разделяет их символом "."