у меня есть запись в виде строки с 1000 полями с разделителем в виде запятой в кадре данных, например
"a, b, c, d, e ....... до 1000" -1-я запись "p,q, r, s, t ...... до 1000 "- 2-я запись
Я использую предложенное ниже решение от stackoverflow
Разделить 1 столбец на 3 столбца в искреscala
df.withColumn("_tmp", split($"columnToSplit", "\\.")).select($"_tmp".getItem(0).as("col1"),$"_tmp".getItem(1).as("col2"),$"_tmp".getItem(2).as("col3")).drop("_tmp")
однако в моем случае у меня есть 1000 столбцов, которые у меня есть в схеме JSON, которые я могу получить как
column_seq:Seq[Array]=Schema_func.map(_.name)
for(i <-o to column_seq.length-1){println(i+" " + column_seq(i))}
, которые возвращаются как
0 col1 1 col2 2 col3 3 col4
Теперь мне нужно передать все эти индексы и имена столбцов в нижнюю функцию DataFrame
df.withColumn("_tmp", split($"columnToSplit", "\\.")).select($"_tmp".getItem(0).as("col1"),$"_tmp".getItem(1).as("col2"),$"_tmp".getItem(2).as("col3")).drop("_tmp")
в
$"_tmp".getItem(0).as("col1"),$"_tmp".getItem(1).as("col2"),
поскольку я не могу создать длинную инструкцию со всеми 1000 столбцами, есть ли эффективный способ передать все эти аргументы из вышеупомянутой схемы json для выбора функции, чтобы я мог разделить столбцы, добавить заголовок и затем преобразовать DF в паркет.