我有一张Hive桌 table_1
使用以下模式
field_1 string
field_2 string
field_3
- field_3_1 string
- field_3_2 double (nullable)
当我有一个具有以下值的条目时
field_1: "100"
field_2: "name"
field_3:
- field_3_1: "category_1"
- field_3_2: null
我试图从scala中读取这个值,如下所示
sparkSession.sql("select field_1, field_3 from table_1 where field_1 ='100'").na
.fill(new lang.Double(0), Seq("field_3.field_3_2")).foreach { r =>
println(r)
}
我总是遇到这个错误
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
我不控制如何在配置单元表中填充值。我发现即使在网上进行广泛的搜索,也很难克服这个错误。也许我错过了一些线索。有人能帮忙吗?谢谢
2条答案
按热度按时间rkttyhzu1#
回答我自己的问题:
原来问题出在
json-serde-1.3-jar-with-dependencies
,将其替换为版本1.3.8
这就解决了问题。ibps3vxo2#
如果我正确理解你的代码,你想把字段3.field\u3\u2的空值替换成零值,对吗?
我试着模拟它,但我没有得到这个错误(尽管它没有用零填充我),也许你应该试试这个:
它将在0处替换null(如果字段不是null,它将保留原始值)。