Ole*_*ikh 5 dataframe apache-spark
我正在尝试使用 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 文件中的列类型吗?
小智 7
从 Spark 2 开始,我们可以像这样使用选项 'inferSchema': getSparkSession().read().option("inferSchema", "true").csv("YOUR_CSV_PATH")
不幸的是,目前不支持此功能,但这将是一个非常有用的功能。目前它们必须在 DLL 中声明。从文档中我们可以得到:
header:设置为 true 时,文件的第一行将用于命名列,并且不会包含在数据中。所有类型都将假定为字符串。默认值为 false。
这就是你所看到的。
请注意,可以在查询时推断模式,例如
select sum(mystringfield) from mytable
Run Code Online (Sandbox Code Playgroud)