Я использую спарк версии 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. Любая помощь будет высоко оценена.
Заранее спасибо.