У меня есть файл, лежащий в Azure Data lake gen 2 filesystem. Я хочу прочитать содержимое файла и внести некоторые изменения на низком уровне, то есть удалить несколько символов из нескольких полей в записях. Чтобы быть более точным - есть некоторые поля, которые также имеют последний символ в виде backsla sh ('\'). И поскольку значение заключено в текстовом квалификаторе (""), значение поля экранирует символ "" "и продолжает включать значение поля next тоже в качестве значения текущего поля.
, например, для Текстовый файл содержит следующие 2 записи (игнорируйте заголовок)
-------------------------------------------------------------------
Name | Address | Description | Remark
-------------------------------------------------------------------
"ABC" | "UK" | "descrption 1" | "remark1"
"DEF" | "USA" | "description2\" | "remark2"
Когда я читаю вышеупомянутое во фрейме данных pyspark, оно читается примерно так:
-------------------------------------------------------------------
Name | Address | Description | Remark
-------------------------------------------------------------------
"ABC" | "UK" | "descrption 1" | "remark1"
"DEF" | "USA" | "description2|remark2" | null
Итак, Моя цель - прочитать вышеуказанные файлы, используя обычную обработку файлов в python, например, следующую и избавиться от символа '\' для тех записей, которые имеют этот символ, и записать строки обратно в новый файл.
f = open("test.txt",'r',encoding = 'utf-8')
//read the lines
//remove the '\' character
//write the line back
Но так как файл находится в файловой системе ADLS gen 2 (HDFS, как файловая система), обычная обработка файлов python здесь не сработает. Какой выход для обработки файлов в файловой системе ADLS gen 2 ?
Или есть способ решить эту проблему с помощью API-интерфейсов искровых данных?