我看到了与此相关的几个问题,但是解决方案都是使用标头true选项。但是,我有一个非常基本的csv文件,可以证明此文件不起作用。我正在使用Spark 2.4.0(从2.3开始,但已升级以查看是否存在任何旧错误)。
Dataset<Row> df = spark.read().option("headers", true)
.format("csv")
.load("src/main/resources/students.csv");
// csv文件:
studentId,studentName,State,GPA,favoritBookTitle,working
1100,Royce Piche,NJ,1.5,To Kill a Mockingbird,TRUE
1120,Alexis Morriss,NJ,3.0,Pride and Prejudice,FALSE
//输出
+---------+--------------+-----+---+--------------------+-------+
| _c0| _c1| _c2|_c3| _c4| _c5|
+---------+--------------+-----+---+--------------------+-------+
|studentid| studentname|State|GPA| favoritbooktitle|working|
| 1100| Royce Piche| NJ|1.5|To Kill a Mocking...| TRUE|
| 1120|Alexis Morriss| NJ|3.0| Pride and Prejudice| FALSE|
我尝试了多种方法来读取csv和/或强制使用标头,包括调用csv mehtod vs loading。 javadocs和其他信息表明这应该起作用。我是否缺少或忽略了某些东西?还是有其他方法可以做到这一点?