В spark, как я могу создать фрейм данных со схемой из CSV-файла, который не имеет имен столбцов? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть CSV-файл, в котором есть только данные, но нет имени столбца, теперь я хочу создать в Spark фрейм данных, используя данные этого CSV-файла, и создать для него схему (имя столбца и тип данных),Мой код, как показано ниже:

import org.apache.spark.sql.SQLContext

val sqlContext = new SQLContext(sc)

val employee = sqlContext.read.format("com.databricks.spark.csv")
.option("header", "false")
.option("inferSchema", "true")
.load("csv filename")

Я хочу знать, какие команды мне нужно добавить в код для построения схемы в моем фрейме данных?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы должны дать имена столбцов, если вы хотите предоставить схему.Так что динамически, все, что вы можете сделать вывод, это типы данных.Я полагаю, что для добавления имен столбцов это должно быть исправлено, но просто нет другого способа добавить имена столбцов, которые имеют смысл, фактически не добавляя их самостоятельно.

Вам просто нужна последовательность Structfield или некоторая такая коллекция, переданная через конструктор StructType.

   import org.apache.spark.sql._

   val yourSchema =
     StructType(
         StructField("colA”, IntegerType, true) ::
         StructField("colB”, LongType, false) ::
         StructField("colC”, BooleanType, false) :: Nil)
0 голосов
/ 26 февраля 2019

Когда схемы нет, спарк называет столбцы c0, c1, c2 и так далее.Вы должны предоставить схему при чтении CSV.Пожалуйста, посмотрите на эту ссылку , это поможет вам в решении вашей проблемы.

...