使用spark读取多个csv文件时,如何设置单个文件的标题?

使用spark读取多个csv文件时,如何设置单个文件的标题?,csv,pyspark,header,Csv,Pyspark,Header,我有相同格式的multi.csv文件。它们的名称类似于file.#.csv。它们的标题位于第一个文件(file_1.csv)中。 我用spark阅读此文件,其中包含以下代码: spark.read.csv('*.csv', header=True) 当我显示结果时,头不是第一个文件的头,它是数据行之一。 我们如何才能说spark头在哪个文件中?使用标准的spark.read API以任何通用的优雅方式都是不可能的 如果知道具有头行的文件,则可以通过从头文件读取模式,然后使用相同的模式读取所有其

我有相同格式的multi
.csv
文件。它们的名称类似于
file.#.csv
。它们的标题位于第一个文件(
file_1.csv
)中。 我用
spark
阅读此文件,其中包含以下代码:

spark.read.csv('*.csv', header=True)
当我显示结果时,头不是第一个文件的头,它是数据行之一。
我们如何才能说spark头在哪个文件中?

使用标准的spark.read API以任何通用的优雅方式都是不可能的

如果知道具有头行的文件,则可以通过从头文件读取模式,然后使用相同的模式读取所有其他文件来生成模式

df1 = spark.read.csv('a.csv', header=True)
header = spark.read.csv('a.csv', header=False).first()
df2 = spark.read.schema(df1.schema).csv(*.csv, header=False).filter(lambda line: line != header)

代码还将从数据中删除标题行。如果可以使用几个字段来区分标题和数据,则可以改进过滤功能。

找到方法了吗?