Cam*_*Cam 7 scala apache-spark
我在 scala 应用程序中有一行代码,它采用一列两行的数据框,并将它们分配给变量start
和end
:
val Array(start, end) = datesInt.map(_.getInt(0)).collect()
Run Code Online (Sandbox Code Playgroud)
此代码在 REPL 中运行时工作正常,但是当我尝试将同一行放入 Intellij 的 scala 对象中时,它会(?: Encoder[Int])
在.collect()
语句前插入灰色,并显示内联错误No implicits found for parameter evidence$6: Encoder[Int]
我对 Scala 很陌生,我不知道如何解决这个问题。
bot*_*aio 15
Spark 需要知道如何序列化 JVM 类型以将它们从 worker 发送到 master。在某些情况下,它们可以自动生成,对于某些类型,有由 Spark 开发人员编写的显式实现。在这种情况下,您可以隐式传递它们。如果您SparkSession
被命名,spark
那么您将错过以下行:
import spark.implicits._
Run Code Online (Sandbox Code Playgroud)
由于您是 Scala 的新手:隐式是您不必显式传递的参数。在您的示例map
函数中需要Encoder[Int]
. 通过添加这个导入,它将被包含在范围中,从而自动传递给map
函数。
查看Scala 文档以了解更多信息。
归档时间: |
|
查看次数: |
5594 次 |
最近记录: |