2024-09-29 21:22:49 发布
网友
我必须读取一个具有不一致空格作为列分隔符的文件。任何关于如何使用Python阅读本文的建议。最终,我需要将这些数据放在pyspark数据帧中
文件内容如下:
AutoID AutoGUID ServerID ReceivedUTC 244021856 B22AD225-1373-4F13-9ADE-38963BA67835 GOEQXPWEPO020 2019-11-02 13:57:25.973
如本链接所述How to change tab delimited in to comma delimited in pandas 您可以将分隔符更改为“无”或更改为文本中的特定字符 比如:
pd.read_csv(filename,sep=None)
或
file = pd.read_csv(filename, sep="\t")
请随意查看文档,因为它可能会给您一些提示https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
在Python中,我们可以使用正则表达式split,我们基于不一致的空间分割数据
Python
split
import re re.split("\\s+",'a b c') ['a', 'b', 'c']
In Pyspark:
#sample data $ cat i.txt one two three four five six seven eight nine ten
cols=["col1","col2","col3","col4","col5"] spark.sparkContext.textFile("<file_path>/i.txt").map(lambda x:re.split("\\s+",x)).toDF(cols).show() #creating dataframe on the file with inconsistent spaces. #+ + -+ -+ + + #|col1| col2| col3|col4|col5| #+ + -+ -+ + + #| one| two|three|four|five| #| six|seven|eight|nine| ten| #+ + -+ -+ + +
这种文件格式称为固定宽度文件pandas有一个专门用于读取此类文件的函数:^{}
pandas
默认情况下,pandas将推断每列的宽度。如果您发现这样做有问题,您可以研究colspecs可选参数
colspecs
您可以使用以下方法将生成的pandas.DataFrame转换为pyspark数据帧:
pandas.DataFrame
spark.createDataFrame(pandas_df)
作为documented by pyspark
如本链接所述How to change tab delimited in to comma delimited in pandas 您可以将分隔符更改为“无”或更改为文本中的特定字符 比如:
或
请随意查看文档,因为它可能会给您一些提示https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
在
Python
中,我们可以使用正则表达式split
,我们基于不一致的空间分割数据In Pyspark:
这种文件格式称为固定宽度文件}
pandas
有一个专门用于读取此类文件的函数:^{默认情况下,
pandas
将推断每列的宽度。如果您发现这样做有问题,您可以研究colspecs
可选参数您可以使用以下方法将生成的
pandas.DataFrame
转换为pyspark数据帧:作为documented by pyspark
相关问题 更多 >
编程相关推荐