Мне нужно изменить значения каждого столбца кадра данных так, чтобы все они были заключены в двойные кавычки после отображения, но кадр данных все еще сохраняет свою первоначальную структуру с заголовками.
Я попытался отобразить значения, изменив строки на последовательности, но он потерял свои заголовки в выходном фрейме данных.
С этим считывается как входной фрейм данных:
|prodid|name |city|
+------+-------+----+
|1 |Harshit|VNS |
|2 |Mohit |BLR |
|2 |Mohit |RAO |
|2 |Mohit |BTR |
|3 |Rohit |BOM |
|4 |Shobhit|KLK |
Я попробовал следующий код.
val columns = df.columns
df.map{ row =>
row.toSeq.map{col => "\""+col+"\"" }
}.toDF(columns:_*)
Но выдает ошибку, утверждающую, что в отображенном кадре данных есть только 1 заголовок, т.е. значение.
Это фактический результат (если я удалю «.df (columns: _ *)»):
| value|
+--------------------+
|["1", "Harshit", ...|
|["2", "Mohit", "B...|
|["2", "Mohit", "R...|
|["2", "Mohit", "B...|
|["3", "Rohit", "B...|
|["4", "Shobhit", ...|
+--------------------+
И мой ожидаемый результат примерно такой:
|prodid|name |city |
+------+---------+------+
|"1" |"Harshit"|"VNS" |
|"2" |"Mohit" |"BLR" |
|"2" |"Mohit" |"RAO" |
|"2" |"Mohit" |"BTR" |
|"3" |"Rohit" |"BOM" |
|"4" |"Shobhit"|"KLK" |
Примечание. В этом примере всего 3 заголовка, но в моих исходных данных много заголовков, поэтому вводить каждый из них вручную невозможно, если заголовок файла изменяется. Как мне получить этот измененный массив данных значения из этого?
Редактировать: если мне нужны кавычки для всех значений, кроме целых чисел. Итак, вывод выглядит примерно так:
|prodid|name |city |
+------+---------+------+
|1 |"Harshit"|"VNS" |
|2 |"Mohit" |"BLR" |
|2 |"Mohit" |"RAO" |
|2 |"Mohit" |"BTR" |
|3 |"Rohit" |"BOM" |
|4 |"Shobhit"|"KLK" |