我正在使用以下示例代码将一堆CSV文件读取到数据框中。
val df = spark.read.format("csv")
.option("sep","|")
.option("inferSchema","true")
.option("header","false")
.load("mnt/rawdata/corp/ABC*.gz")
我希望有一种方法可以从第2行或以下开始,因为第1行包含有关这些文件的一些基本元数据,并且第一行具有4个竖线字符,因此Spark认为文件有4列,但实际上实际数据中有超过100列。
我尝试使用inferSchema和标头,但无法进行任何操作。
如果CSV中的第一行与实际的列数和名称不匹配,则可能需要手动定义架构,然后尝试以下组合:
您是对的!您需要定义一个自定义模式!我最终选择了这个。