Scala DataFrameReader保留列标题

时间:2017-08-31 03:48:34

标签: scala apache-spark

以下代码将csv读入scala中的数据框:

 val mDF: DataFrame = spark.read.csv("src/test/resources/knimeMerged.csv")

但是,它将导入数据的第一行视为数据行。实际上,第一行是标题。它使用数据帧的默认标头作为标头(例如,_ c0,_c1)

我假设有一个选项允许导入csv文件的头文件,但在Scala API文档中找不到它(我是scala及其文档的新手)。

任何提示都将被视为选项是什么以及如何实现

2 个答案:

答案 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文件的更好元数据。