【发布时间】:2019-08-02 11:54:39
【问题描述】:
我有以下案例类:
case class Person(name: String, lastname: Option[String] = None, age: BigInt) {}
还有下面的json:
{ "name": "bemjamin", "age" : 1 }
当我尝试将我的数据框转换为数据集时:
spark.read.json("example.json")
.as[Person].show()
它显示以下错误:
线程“主”org.apache.spark.sql.AnalysisException 中的异常: 给定输入列无法解析“
lastname”:[年龄,姓名];
我的问题是:如果我的架构是我的案例类,并且它定义姓氏是可选的,那么 as() 不应该进行转换吗?
我可以使用 .map 轻松解决此问题,但我想知道是否有其他更清洁的替代方法。
【问题讨论】:
-
嗨,如果您在其中添加另一个带有姓氏的 json(记录 2),如果它有效,那么我认为它会将架构推断为三列。以您只有一条记录的示例,spark(或任何人)如何知道您打算拥有 3 列?
标签: scala apache-spark apache-spark-sql apache-spark-dataset