繁体   English   中英

未找到参数证据的隐含

[英]No implicits found for parameter evidence

我在 scala 应用程序中有一行代码,该应用程序采用具有一列和两行的 dataframe ,并将它们分配给变量startend

val Array(start, end) = datesInt.map(_.getInt(0)).collect()

此代码在 REPL 中运行时工作正常,但是当我尝试在 Intellij 中的 scala object 中放入同一行时,它会在.collect()语句之前插入一个灰色(?: Encoder[Int]) ,并显示一个内联错误No implicits found for parameter evidence$6: Encoder[Int]

我对 scala 很陌生,我不知道如何解决这个问题。

Spark 需要知道如何序列化 JVM 类型以将它们从工作人员发送到主机。 在某些情况下,它们可以自动生成,并且对于某些类型,Spark 开发人员会编写显式实现。 在这种情况下,您可以隐式传递它们。 如果您的SparkSession被命名为spark ,那么您会错过以下行:

import spark.implicits._

由于您是 Scala 的新手:implicits 是您不必显式传递的参数。 在您的示例map function 需要Encoder[Int] 通过添加此导入,它将包含在 scope 中,从而自动传递给map function。

查看Scala 文档以了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM