Escape Backsla sh (/) при записи искрового фрейма данных в CSV - PullRequest
0 голосов
/ 12 апреля 2020

Я использую спарк версии 2.4.0. Я знаю, что Backsla sh является escape-символом по умолчанию в spark, но я все еще сталкиваюсь с проблемой ниже. Я читаю CSV-файл в искровом фрейме данных (используя язык pyspark) и записываю обратно фрейм данных в CSV.

У меня есть некоторые "//" в моем исходном CSV-файле (как упомянуто ниже), где сначала Backsla sh представляет escape-символ, а второе Backsla sh является фактическим значением.

Test.csv (Исходные данные)

Col1,Col2,Col3,Col4
1,"abc//",xyz,Val2
2,"//",abc,Val2

Я читаю файл Test.csv и создаю фрейм данных, используя приведенный ниже фрагмент кода:

df = sqlContext.read.format('com.databricks.spark.csv').schema(schema).option("escape", "\\").options(header='true').load("Test.csv")

И чтение фрейма данных df и запись обратно в файл Output.csv с использованием кода ниже:

df.repartition(1).write.format('csv').option("emptyValue", empty).option("header", "false").option("escape", "\\").option("path", 'D:\TestCode\Output.csv').save(header = 'true')

Output.csv

Col1,Col2,Col3,Col4
1,"abc//",xyz,Val2
2,/,abc,Val2

Во 2-й строке файла Output.csv экранирующий символ теряется вместе с кавычками (""). Мое требование - сохранить escape-символ и в output.csv. Любая помощь будет высоко оценена.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...