У меня HMP набор данных . Этот набор данных содержит 14 различных папок (категорий), и в каждой категории есть несколько CSV-файлов.
Я хочу прочитать данные из всех CSV-файлов в одном кадре данных. Схема для данных:
val Tschema = StructType(Array(
StructField("X", IntegerType, true),
StructField("Y", IntegerType, nullable = true),
StructField("Z", IntegerType, true)
))
Кроме того, я хочу добавить еще два столбца в фрейм данных. Первый столбец содержит имя папки (категории), содержащей текущий файл CSV, а второй столбец содержит имя файла CSV.
Я пробовал следующий код, но он не работал должным образом.
val path = System.getProperty("user.home") + "/Desktop/HMP/*" // Path to all categories
val df =spark.sparkContext.wholeTextFiles(path)
df.toDF().show(5 , false)
выводмой код
+----------------------------------------------------------------------+--------------------+
| _1| _2|
+----------------------------------------------------------------------+--------------------+
|Climb_stairs/Accelerometer-2012-06-06-14-13-20-climb_stairs-m7.txt |12 38 35 |
|Climb_stairs/Accelerometer-2012-06-06-14-13-20-climb_stairs-m7.txt |23 56 34 |
|Climb_stairs/Accelerometer-2012-06-06-14-13-20-climb_stairs-m7.txt |13 36 36 |
|Climb_stairs/Accelerometer-2012-06-06-14-13-20-climb_stairs-m7.txt |39 57 42 |
|Climb_stairs/Accelerometer-2012-06-06-14-13-20-climb_stairs-m7.txt |26 51 36 |
+----------------------------------------------------------------------+--------------------+
Здесь, в первом столбце (_ 1) до \ это часть, которую я хочу быть в отдельном столбце класс и оставшаяся часть будет в столбце источник . В части _2 я хочу применить определенную мной схему.
Я хочу, чтобы конечный вывод выглядел следующим образом.
+---+---+---+--------------+---------------------+
| X| Y| Z| class| source|
+---+---+---+--------------+---------------------+
| 37| 34| 43| Climb_stairs|Accelerometer-2011...|
| 05| 39| 34| Climb_stairs|Accelerometer-2011...|
| 30| 53| 49| Climb_stairs|Accelerometer-2011...|
+---+---+---+-------------+----------------------+