Spark 数据导入时的类型检测相关问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark 数据导入时的类型检测相关问题相关的知识,希望对你有一定的参考价值。
Spark 可以读取文本,csv和rmdb中的数据,并且带有类型自动检测功能
public final static String DATA_SEPARATOR_TAB = "\t";
session.read().format("csv").option("delimiter", Constants.DATA_SEPARATOR_TAB).option("inferSchema", "true").option("header", "true").option("encoding", charset).csv(path).toDF(columnNames).write().mode(mode).saveAsTable(tempTable);
红色属性决定spark是否自动探测数据类型,如果不开启自动探测,默认都是string
rdbms导入到spark中默认会类型探测和对应,但是在处理sqlserver的时间类型有问题
如上图所示
只有datetime可以被spark识别并存储为日期类型,其他的都落地成了String类型,所以在执行data_formate时因为要多做一步转换所以性能会差很多
以上是关于Spark 数据导入时的类型检测相关问题的主要内容,如果未能解决你的问题,请参考以下文章
“无法找到存储在数据集中的类型的编码器”,即使 spark.implicits._ 被导入?
Dynamics CRM EXCEL导入数据字段类型为选项集时的注意事项
Spark SQL - 从 oracle 导入时将 oracle 日期数据类型错误转换为时间戳(java.sql)
访问 VBA DoCmd.TransferText CSV 导入 - 错误数据类型检测删除必要的字符串信息