【发布时间】:2021-10-12 10:43:48
【问题描述】:
我有一个场景,我需要将 scala Map 转换为案例类对象,并且借助以下参考资料,我能够在本地实现它(scala 版本 2.12.13):
但是当我尝试在 Databricks 笔记本中运行相同的代码块时,它会引发错误:
IllegalArgumentException: Cannot construct instance of '$line23851bc084ae4df7a16bf9c475868d9265.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$Test' (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor at [Source: UNKNOWN; line: -1, column: -1]
集群配置:Databricks 运行时 8.2(包括 Spark 3.1.1、Scala 2.12)。完整代码请参考截图。
解决方法(不建议):
def workaround(map: Map[String, Any]): Test = {
Test(
map("k1").asInstanceOf[Int],
map("k2").asInstanceOf[String],
map("k3").asInstanceOf[String],
)
}
val result = workaround(myMap)
关于如何解决此问题的任何想法?
【问题讨论】:
标签: azure scala apache-spark databricks