Как использовать delimeter ^ | ^ для загрузки файла данных в spark scala? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть данные, и мне нужно использовать разделитель как ^ | ^ для загрузки в df. У df нет данных заголовка.

1 Ответ

0 голосов
/ 16 марта 2020

Опция разделителя не поддерживает значения с несколькими символами. Вместо этого вы можете загрузить файл и разбить его на основе разделителя

Входной файл:

A^|^B^|^1
C^|^D^|^2
E^|^F^|^3
G^|^H^|^4

Код:

val file = spark.read.textFile("C:\\PATH\test.txt")
      .map(line => line.split("\\^\\|\\^"))

  def getColAtIndex(id:Int): Column = col(s"value")(id).as(s"column1_${id+1}")
  val columns: IndexedSeq[Column] = (0 to 2).map(getColAtIndex)

  file.select(columns: _*).show

Выход:

+---------+---------+---------+
|column1_1|column1_2|column1_3|
+---------+---------+---------+
|        A|        B|        1|
|        C|        D|        2|
|        E|        F|        3|
|        G|        H|        4|
+---------+---------+---------+
...