Извлечение полей из массива и создание новых столбцов данных.
пробовал .withColumn и его нормально работает, но у меня есть 20 таких столбцов, и я хочу записать UDF
Ввод: массив
0: 1:07:00:22:30
1: 2:06:30:22:30
2: 3:06:30:22:30
3: 4:06:30:22:30
4: 5:06:30:22:30
5: 6:06:30:22:30
6: 7:07:00:22:30
Индекс формата ввода: День: OpenHours: OpenMinutes: ClosingHours: ClosingMin
val sliceTimeString = udf((data: String)=>data.trim().slice(2,13))
val formattedDF = rawDF.withColumn("delivery_hours_monday", sliceTimeString($"deliveryHours".getItem(0))).withColumn("delivery_hours_tuesday", sliceTimeString($"deliveryHours".getItem(1)))
Я могу написать 7 строк аналогично для отдельных часов доставки, но это не оптимизировано.
Я хочу определить UDF для установки 2 столбцов для каждого дня - часы работы понедельника, часы закрытия понедельника, часы работы вторника, часы закрытия вторника и т. Д.
Понедельник_открыто понедельник_открыт: 30 06:30 22: 30