【问题】
-在读取小量数据时,会加载出最新的一个新加的列的数据,没有的值,为null,但是当加载的数据量偏大的时候,会出现加载字段不全的情况,没有达到预期
【原因】
从Spark 1.5.0版本开始,默认是关闭Parquet文件的自动合并元数据的特性的当数据量过大,sparksql,出于性能的考虑,没有合并字段的信息,也就是schema,造成了字段不全的问题
【解决办法】
read 数据源 的时候,增加参数:
var df = sparkSession.read.option(“mergeSchema”, “true”).parquet(existsNewUserPaths2:_*)
参考博客:
blog.csdn.net/qq_43147136/article/details/83053794
===================================
spark sql 读取多个hdfs的路径的方法:
1.new一个类型为String 的数组
2.将路径加入到数组中
3.读取数组中的路径:read .read.option(“mergeSchema”, “true”).parquet(存放路径的数组:_*)
会加载所以的路径为一个datafream,合并schema信息,便于统一处理计算
更多推荐
数据源,数据,parkSQL,Parquet,schema
发布评论