Spark Scala: Как убрать двойные кавычки вокруг каждой строки, включая заголовки? - PullRequest
0 голосов
/ 24 апреля 2019

Я начинаю со Spark, и файл, который мне нужно проанализировать, имеет следующую форму:

"VARIABLE;MOD;LIBMOD"
"CDEXE;6;PBS between 25000 and 50000 euros"

Как получить набор данных [ValueDescriptor] из него?

Значение дескриптора:

case class ValueDescriptor(variableName: String, value:String, label: String)

Я только нашел, как удалять кавычки вокруг столбцов, а не вокруг каждой строки.

До сих пор я использовал такой код:

    sparkSession
      .read
      .option("header", "true")
      .option("delimiter", ";")
      .csv("file.txt")
      .withColumnRenamed("VARIABLE", "variableName")
      .withColumnRenamed("MOD", "value")
      .withColumnRenamed("LIBMOD", "label")
      .as[ValueDescriptor]

1 Ответ

2 голосов
/ 24 апреля 2019

Вы можете сначала прочитать его как текст, чтобы удалить лишние кавычки

val txtDF = sparkSession
  .read
  .textFile("file.txt")
  .map(_.stripPrefix("\"").stripSuffix("\""))

, а затем загрузить его как CSV

sparkSession
  .read
  .option("header", "true")
  .option("delimiter", ";")
  .csv(txtDF)
  .withColumnRenamed("VARIABLE", "variableName")
  .withColumnRenamed("MOD", "value")
  .withColumnRenamed("LIBMOD", "label")
  .as[ValueDescriptor]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...