Обработка "\" значений CSV serde - PullRequest
0 голосов
/ 18 февраля 2019

CSV-серверу, которому не удалось выйти из значений, в искровом фрейме данных «\» содержится «*».

Считывание данных CSV-файла с использованием искрового CSV-файла, но ему не удалось экранировать символ «\».

spark.read.option ("multiLine", "true"). Option ("delimiter", '|'). Csv ("/ data / working / dev01 / textfile /")

Фактический результат

_c1 |_c2 | c3 |

---- + -------------- +

10 | "viv" | "1"| 10 |

10 |" viv "|" 1 "| 10 |

10 |" viv "|" 1 "| 10 |

10 |" viv"|" 1 "| 10 |

---- + -------------- +

Ожидаемый результат

" 10"|" viv \ "|" 1 "|" 10 "|

" 10 "|" viv \ "|" 1 "|" 10 "|

" 10 "|" viv\ "|" 1 "|" 10 "|

" 10 "|" viv \ "|" 1 "|" 10 "|

Из-за" \ "происходит слияние двух столбцовзначения в один столбец. В приведенном выше примере «viv» | 1 объединены в 1 столбец как _c2, на самом деле это должно быть

1 Ответ

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

Я сталкивался с этой проблемой раньше.И я не совсем уверен, что вы хотите, но я могу дать вам свое аналогичное решение (используя опции escape и quote):

val df = spark.read
    .option("header","true")
    .option("escape", "\\")
    .option("quote", "\"")
    .csv("filePath")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...