使用pyspark解析要在特定位置拆分的文本文件

使用pyspark解析要在特定位置拆分的文本文件,pyspark,rdd,Pyspark,Rdd,我有一个不由任何字符分隔的文本文件,我想在特定位置拆分它,以便将其转换为“dataframe”。file1.txt中的示例数据如下: 1JITENDER33 2VIRENDER28 3BIJENDER37 我想分割文件,使位置0到1进入第一列,位置2到9转到第二列,位置10到11转到第三列,这样我最终可以将其转换为spark dataframe您可以使用下面的python代码读取输入文件,并使用csv writer对其进行分隔,然后将其读取到dataframe中,或者将其加载到您的hive外部

我有一个不由任何字符分隔的文本文件,我想在特定位置拆分它,以便将其转换为“dataframe”。file1.txt中的示例数据如下:

1JITENDER33
2VIRENDER28
3BIJENDER37

我想分割文件,使位置0到1进入第一列,位置2到9转到第二列,位置10到11转到第三列,这样我最终可以将其转换为
spark dataframe

您可以使用下面的python代码读取输入文件,并使用csv writer对其进行分隔,然后将其读取到dataframe中,或者将其加载到您的hive外部表中

vikrant>cat输入文件
1 JITENDER33
2VIRENDER28
3BIJENDER37
导入csv
fname_in='/u/user/vikrant/inputfile'
fname_out='/u/user/vikrant/outputfile.csv'
cols=[(0,1)、(1,9)、(9,11)]
以open(fname_in)作为fin,open(fname_out,'wt')作为fout:
writer=csv.writer(fout,delimiter=“,”,lineterminator=“\n”)
对于fin中的行:
line=line.rstrip()#删除“\n”和其他尾随空格
data=[列[c[0]:c[1]]表示列中的c]
打印(“数据:”,数据)
writer.writerow(数据)
vikrant>cat outputfile.csv
1,吉腾德,33岁
2,维伦德,28岁
比詹德,37岁

您还可以将此代码作为某个python类的函数,然后将该类进一步导入pyspark应用程序代码,并可以将纯文本文件转换为某个csv文件格式。如果您需要更多帮助,请告诉我。

谢谢@vikrant。我将尝试解决方案,如果可行,将进行更新。