如何在 IntelliJ 调试器评估表达式中使用 sparks 隐式转换(例如 $)

Rap*_*oth 8 scala intellij-idea apache-spark

使用 IntelliJ 调试 Spark/Scala 代码时,使用 egdf.select($"mycol")在评估表达式窗口中不起作用,而df.select(col("mycol"))工作正常(但需要更改代码):

在此处输入图片说明

它说 :

生成的代码调用期间出错:com.intellij.debugger.engine.evaluation.EvaluateException:评估方法错误:'invoke':方法抛出'java.lang.NoSuchFieldError'异常。:评估方法错误:'invoke':方法抛出'java .lang.NoSuchFieldError' 异常。

奇怪的是,它有时似乎有效,特别是如果$已经是我标记为要评估的代码中现有表达式的一部分。如果我编写任意表达式(代码片段),它会一直失败

编辑:即使import spark.implicts._在代码片段窗口中重复也无济于事

Dea*_* Xu 3

尝试这个解决方法:

import spark.implicits._
$""
df.select($"diff").show()
Run Code Online (Sandbox Code Playgroud)

前

后