我的.csv
的列很少,使用'n'
函数将此文件导入数据帧时,我希望跳过4(或spark.read.csv()
行)行。我有一个.csv
这样的文件-
ID;Name;Revenue
Identifier;Customer Name;Euros
cust_ID;cust_name;€
ID132;XYZ Ltd;2825
ID150;ABC Ltd;1849
在普通的Python中,使用read_csv()
函数时,它很简单,并且可以使用skiprow=n
选项-
import pandas as pd
df=pd.read_csv('filename.csv',sep=';',skiprows=3) # Since we wish to skip top 3 lines
使用PySpark,我按如下方式导入此.csv文件-
df=spark.read.csv("filename.csv",sep=';')
This imports the file as -
ID |Name |Revenue
Identifier |Customer Name|Euros
cust_ID |cust_name |€
ID132 |XYZ Ltd |2825
ID150 |ABC Ltd 1849
这是不正确的,因为我希望忽略前三行。我不能使用选项'header=True'
,因为它只会排除第一行。一个人可以使用'comment='
选项,但为此需要以特殊字符开头的行,而我的文件则不是这样。我在documentation中找不到任何内容。有什么办法可以实现?
答案 0 :(得分:1)
我找不到您问题的简单解决方案。尽管无论标题如何编写都可以使用
df = spark.read.csv("filename.csv",sep=';')\
.rdd.zipWithIndex()\
.filter(lambda x: x[1] > n)\
.map(lambda x: x[0]).toDF()