Разбор текстового файла для разделения на определенные позиции с помощью pyspark - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть текстовый файл, который не разделен никаким символом, и я хочу разделить его на определенные позиции, чтобы я мог преобразовать его в «dataframe». Пример данных в file1.txt ниже:

1JITENDER33
2VIRENDER28
3BIJENDER37

Я хочу разделить файл так, чтобы позиции 0–1 перешли в первый столбец, позиции 2–9 - во второй столбец, а 10–11 - в третий столбец, чтобы я наконец смог преобразовать его в spark dataframe.

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать приведенный ниже код Python для чтения вашего входного файла и разделения его с помощью csv writer, а затем можете прочитать его в dataframe или загрузить во внешнюю таблицу вашего улья.

vikrant> cat inputfile
1JITENDER33
2VIRENDER28
3BIJENDER37

import csv
fname_in = '/u/user/vikrant/inputfile'
fname_out = '/u/user/vikrant/outputfile.csv'
cols = [(0,1), (1,9), (9,11)]
with open(fname_in) as fin, open(fname_out, 'wt') as fout:
    writer = csv.writer(fout, delimiter=",", lineterminator="\n")
    for line in fin:
        line = line.rstrip()  # removing the '\n' and other trailing whitespaces
        row = []                     # init -- empty list
        data = [line[c[0]:c[1]] for c in cols]
        print("data:",data)
        writer.writerow(data)


vikrant> cat outputfile.csv
1,JITENDER,33
2,VIRENDER,28
3,BIJENDER,37

youМожно также сделать этот код как функцию для некоторого класса Python, а затем импортировать этот класс в код приложения pyspark и преобразовать ваш простой текстовый файл в некоторый формат CSV-файла.дайте мне знать, если вам понадобится дополнительная помощь по этому вопросу.

...