我有一个不由任何字符分隔的文本文件,我想在特定位置拆分它,以便我可以将其转换为“数据框”。下面 file1.txt 中的示例数据:
1JITENDER33
2VIRENDER28
3BIJENDER37
我想拆分文件,使位置 0 到 1 进入第一列,位置 2 到 9 进入第二列,位置 10 到 11 进入第三列,以便我最终可以将其转换为spark dataframe.
您可以使用下面的 python 代码读取您的输入文件并使用 csv 编写器对其进行分隔,然后可以将其读入数据帧或将其加载到您的配置单元外部表中。
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
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
您还可以将此代码作为某个 python 类的函数,然后将该类进一步导入 pyspark 应用程序代码,并可以将您的纯文本文件转换为某种 csv 文件格式。如果您需要更多帮助,请告诉我。