将HDFS上一个文件夹中的许多逗号删除文件加载到pyspark数据帧中,第一个文件有头

将HDFS上一个文件夹中的许多逗号删除文件加载到pyspark数据帧中,第一个文件有头,pyspark,Pyspark,我在HDFS中有一个文件夹。文件夹的内容包括: _SUCCESS part-00000 part-00001 ... part-00048 这些文件是csv格式的。第一个文件part-00000具有标题。其余的文件没有 读取文件时,我使用以下命令: spark.read.load( fileLocation, format='com.databricks.spark.csv', header='true', inferSch

我在HDFS中有一个文件夹。文件夹的内容包括:

_SUCCESS
part-00000
part-00001
...
part-00048
这些文件是csv格式的。第一个文件
part-00000
具有标题。其余的文件没有

读取文件时,我使用以下命令:

spark.read.load(
        fileLocation, 
        format='com.databricks.spark.csv', 
        header='true', 
        inferSchema='true'
    )
加载时,我收到一条警告:
WARN CSVDataSource:66-CSV头不符合架构。

读取除第一个文件外的所有文件时,会出现此错误,因为第一个文件包含头文件

完全错误:

WARN  CSVDataSource:66 - CSV header does not conform to the schema.
 Header: <row of data>
 Schema: <header field names>
Expected: <header field names>
警告CSVDataSource:66-CSV标头不符合架构。
标题:
模式:
预期:

上面,基本上,它说文件头是文件的第一行数据。但它期待着头球。所以我认为这是因为只有第一个文件有头
HDFS getmerge
处理此罚款。使用python/pyspark将文件作为csv加载时,如何避免此错误?您可以在单独的数据帧中读取第一个文件以获取其模式,然后将该模式应用于其余文件

sample=spark.read.load(
“第00000部分”,
format='com.databricks.spark.csv',
header=True,
inferSchema=True,
)
df=spark.read.load(
文件位置,
format='com.databricks.spark.csv',
schema=sample.schema
)