Spark-csv数据源:推断数据类型

时间:2015-04-19 03:58:09

标签: apache-spark dataframe

我尝试使用Spark-CSV包(https://github.com/databricks/spark-csv)将csv个文件读入Spark DataFrames

一切正常但所有列都假定为StringType

如Spark SQL文档(https://spark.apache.org/docs/latest/sql-programming-guide.html)所示,对于内置源(如JSON),可以自动推断具有数据类型的模式。

可以自动推断CSV文件中的列类型吗?

2 个答案:

答案 0 :(得分:3)

不幸的是,目前还没有支持,但这将是一个非常有用的功能。目前它们必须在DLL中声明。从我们的文档:

  

header:当设置为true时,第一行文件将用于命名列,不会包含在数据中。所有类型都将被假定为字符串。默认值为false。

这就是你所看到的。

请注意,可以在查询时推断架构,例如

select sum(mystringfield) from mytable

答案 1 :(得分:2)

从Spark 2开始,我们可以使用选项'inferSchema',如下所示: getSparkSession()。read()。option(“inferSchema”,“true”)。csv(“YOUR_CSV_PATH”)