Как прочитать текстовый файл, разделенный несколькими символами в PySpark? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть файл в формате .bcp и я пытаюсь его прочитать. Строки разделены "| ;; |". Строка может занимать несколько строк в файле.

rdd = sc.textFile("test.bcp") разбивает файл на строки, но мне нужно, чтобы он был отделен "| ;; |". Как я могу сделать это без изменения конфигурации Had oop?

Пример .bcp:

A1|;|B1|;|C1|;|
D1|;;|A2|;|B2|;|
C2|;|D2|;;|

следует преобразовать в: [["A1", "B1", "C1", "D1"], ["A2", "B2", "C2", "D2"]]

1 Ответ

0 голосов
/ 11 марта 2020

Для пользовательского разделителя с несколькими символами измените конфигурацию oop:

sc = SparkContext.getOrCreate()

# let hadoop separate files by our custom delimiter
conf = sc._jsc.hadoopConfiguration()
conf.set("textinputformat.record.delimiter", '|;;|')

# create RDD of .bcp file
rows = sc.textFile('/PATH/TO/FILE/test.bcp')  # split file into rows
rows = rows.map(lambda row: row.split('|;|'))  # split rows into columns

# reset hadoop delimiter
conf.set("textinputformat.record.delimiter", "\n")
...