如何在pyspark中读取具有不同模式的多个csv文件?

如何在pyspark中读取具有不同模式的多个csv文件?,csv,pyspark,Csv,Pyspark,我在给定文件夹的子文件夹中保存了不同的csv文件,其中一些文件在列名中有一种格式,另一些文件有另一种格式 april_df = spark.read.option("header", True).option("inferSchema", True).csv('/mnt/range/2018_04_28_00_11_11/') 上面的命令只引用一种格式,而忽略其他格式。在参数中有没有像拼花的mergeschema这样的快速方法 某些文件的格式如下所示: id ,f_facing ,l_faci

我在给定文件夹的子文件夹中保存了不同的csv文件,其中一些文件在列名中有一种格式,另一些文件有另一种格式

april_df = spark.read.option("header", True).option("inferSchema", True).csv('/mnt/range/2018_04_28_00_11_11/')
上面的命令只引用一种格式,而忽略其他格式。在参数中有没有像拼花的mergeschema这样的快速方法

某些文件的格式如下所示:

id ,f_facing ,l_facing ,r_facing ,remark
二是

id, f_f, l_f ,r_f ,remark

但将来可能会有一些列丢失等情况,因此需要一种可靠的方法来处理此问题。

事实并非如此。该列在管道中应填充null,或者在导入文件之前必须指定架构。但是,如果您了解将来可能缺少哪些列,您可能会创建一个场景,根据
df.columns
的长度,您可以指定模式,尽管它看起来很乏味。

不是。该列在管道中应填充null,或者在导入文件之前必须指定架构。但是,如果您了解将来可能缺少哪些列,您可能会创建一个场景,根据
df.columns
的长度,您可以指定模式,尽管这看起来很乏味。

如果列的顺序相同,则可以简单地加载
df=spark.read.csv(“*.csv”)
,但如果以后少了几列,数据将不对齐。谢谢,但这会在datain选项中添加标题行。您可以使用header=false。如果列的顺序相同,则可以简单地加载
df=spark.read.csv(“*.csv”)
,但如果将来缺少几列,数据将不对齐。谢谢,但这会在datain选项中添加标题行,您可以使用header=False