Разделить файл с пробелом, где данные столбца также имеют пробел - PullRequest
0 голосов
/ 21 января 2020

Привет. У меня есть файл данных, в котором в качестве разделителя используется пробел, а также данные, в каждом столбце также есть пробелы. * 3 столбца: Имя Адрес Идентификатор

Name         Address               Id
Abhi Rishii  Bangalore,Karnataka  1234
Rinki siyty  Hydrabad,Andra      2345  

Кадр выходных данных должен быть:

 |Name         |City   |State     |Id--|
  +-------------+------+-----------+-----+
  | Abhi Rishii|Bangalore|Karnataka|1234|
  | Rinki siyty|Hydrabad |Andra    |2345|
  +----+-----+-----------+---------+-----+

1 Ответ

0 голосов
/ 21 января 2020

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

import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder().getOrCreate()
var studentDf = spark.read.format("csv")     // Use "csv" for both TSV and CSV
                .option("header", "true")  
                .option("delimiter", "\t") // Set delimiter to tab .
                .load("student.txt")
                .withColumn("_tmp", split($"Address", "\\,"))
                .withColumn($"_tmp".getItem(0).as("City"))
                .withColumn($"_tmp".getItem(1).as("State"))
                .drop("_tmp")
                .drop("Address")


studentDf .show()

  |Name         |City   |State     |Id--|
  +-------------+------+-----------+-----+
  | Abhi Rishii|Bangalore|Karnataka|1234|
  | Rinki siyty|Hydrabad |Andra    |2345|
  +----+-----+-----------+---------+-----+
...