以下代码将csv读入scala中的数据框:
val mDF: DataFrame = spark.read.csv("src/test/resources/knimeMerged.csv")
但是,它将导入数据的第一行视为数据行。实际上,第一行是标题。它使用数据帧的默认标头作为标头(例如,_ c0,_c1)
我假设有一个选项允许导入csv文件的头文件,但在Scala API文档中找不到它(我是scala及其文档的新手)。
任何提示都将被视为选项是什么以及如何实现
答案 0 :(得分:3)
处理它的选项是header
;将header
设置为true将起作用:
val mDF: DataFrame = spark.read.option("header", true).csv("src/test/resources/knimeMerged.csv")
答案 1 :(得分:1)
您可以在使用header
方法之前添加选项csv
,其值为true
像这样的东西。
val df = spark.read.option("header","true").option("inferSchema","true").csv("src/test/resources/knimeMerged.csv")
我还添加了名为inferSchema
的新选项。
使用inferSchema
作为选项让spark尝试指定列类型。
我们尝试推断架构,即某些列的数据类型为Int
,然后它会将此信息添加到CSV的架构中。
使用这两个选项,您将获得有关CSV文件的更好元数据。