【发布时间】:2020-12-23 03:49:34
【问题描述】:
我有一些看起来像这样的 scala/spark 代码:
import sqlContext.implicits._
val join: (Dataset[MyCaseClassA], Dataset[MyCaseClassB]) => Dataset[AB] = (a, b) =>
a.joinWith(b,
a("prop_a1") === b("prob_b1"),
"left"
) //more code...
这工作正常,编译和一切。但是假设我想做一些函数式编程,所以我将整个事情重构为:
import sqlContext.implicits._
val join: (Unit => Dataset[MyCaseClassA], Unit => Dataset[MyCaseClassB]) => Dataset[AB] = (a, b) =>
a(Unit).joinWith(b(Unit),
a("prop_a1") === b("prob_b1"),
"left"
) //more code...
AFAIKT 这应该可以正常工作。然而,最终发生的事情是 IntelliJ 立即变灰 import sqlContext.implicits._,并且方法 === 停止使用 value === is not a member of org.apache.spark.sql.Dataset 解析。
因此,由于某种原因,import sqlContext.implicits._ 在传递函数参数时不起作用。我的问题是:
- 为什么隐式导入停止工作?
- 我可以做些什么来使导入工作并且仍然使用函数参数?
【问题讨论】:
标签: scala apache-spark implicit