У меня есть данные CSV в файле (data.csv
), например, так:
lat,lon,data
35.678243, 139.744243, "0,1,2"
35.657285, 139.749380, "1,2,3"
35.594942, 139.548870, "4,5,6"
35.705331, 139.282869, "7,8,9"
35.344667, 139.228691, "10,11,12"
Используя следующую команду оболочки оболочки:
spark.read.option("header", true).option("escape", "\"").csv("data.csv").show(false)
Я получаю следующий вывод:
+---------+-----------+----+
|lat |lon |data|
+---------+-----------+----+
|35.678243| 139.744243| "0 |
|35.657285| 139.749380| "1 |
|35.594942| 139.548870| "4 |
|35.705331| 139.282869| "7 |
|35.344667| 139.228691| "10|
+---------+-----------+----+
Я ожидаю, что запятые в двойных кавычках будут игнорироваться в соответствии с RFC 4180 , но синтаксический анализатор интерпретирует их как разделитель.
Использование опции quote
также не имеет никакого эффекта:
scala> spark.read.option("header", true).option("quote", "\"").option("escape", "\"").csv("data.csv").show(false)
+---------+-----------+----+
|lat |lon |data|
+---------+-----------+----+
|35.678243| 139.744243| "0 |
|35.657285| 139.749380| "1 |
|35.594942| 139.548870| "4 |
|35.705331| 139.282869| "7 |
|35.344667| 139.228691| "10|
+---------+-----------+----+
Также нет опций:
scala> spark.read.option("header", true).csv("data.csv").show(false)
+---------+-----------+----+
|lat |lon |data|
+---------+-----------+----+
|35.678243| 139.744243| "0 |
|35.657285| 139.749380| "1 |
|35.594942| 139.548870| "4 |
|35.705331| 139.282869| "7 |
|35.344667| 139.228691| "10|
+---------+-----------+----+