如何解决Spark-忽略Dataset.as [SomeCaseClass]不存在的列
Spark Dataset.as函数对未找到的列引发异常-org.apache.spark.sql.AnalysisException: cannot resolve 'attr_3' given input columns: [attr_1,attr_2];
case class SomeCaseClass(attr_1: String,attr_2: Long,attr_3: String)
spark.read.parquet("some_directory").as[SomeCaseClass]
有什么办法可以避免这种异常,并为不存在的列设置null?
解决方法
在读取时指定 schema
,因为架构会为不存在的列添加空值,然后转换为 DataSet
。
Example:
case class SomeCaseClass(attr_1: String,attr_2: Long,attr_3: String)
val sch=Seq[SomeCaseClass]().toDF.schema
spark.read.schema(SomeCaseClass).parquet("some_directory").as[SomeCaseClass]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。