如何在pyspark中使用read.csv跳过多行

lp0sw83n  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(690)

我正在吃晚饭 .csv 我希望跳过4(或 'n' 一般情况下)将此文件导入Dataframe时使用 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=' 选项,但对于该选项,需要以特定字符开头的行,而我的文件不是这样。我在文件里找不到任何东西。有什么办法可以做到这一点吗?

jckbn6z7

jckbn6z71#

我找不到解决你问题的简单办法。尽管不管头是怎么写的,这都是可行的,

df = spark.read.csv("filename.csv",sep=';')\
          .rdd.zipWithIndex()\
          .filter(lambda x: x[1] > n)\
          .map(lambda x: x[0]).toDF()

相关问题