Scala& Spark:IntelliJ IDE的“评估表达式”窗口的限制

时间:2016-11-10 09:10:28

标签: scala apache-spark intellij-idea

我刚刚在Intelli J IDEAs(v.2016.2)“评估表达式”窗口中遇到了意外行为:

虽然这有效,但作为编译代码和使用“评估表达式”窗口

  val df1 = spark.read.json("/examples/src/main/resources/people.json")
  df1.columns.foreach(println) // outputs "age" and "name" to console

涉及由表达式生成的某些Dataset[Row]的另一个DataFrameColumns)仅用作编译代码,而在“Evaluate Expression”窗口中显示以下异常:

 com.intellij.debugger.engine.evaluation.EvaluateException: 
 Type mismatch Can't assign org.apache.spark.sql.Dataset to scala.runtime.ObjectRef

两个数据框都属于class org.apache.spark.sql.Dataset类。根据Intelli Js documentation,唯一的限制是:

  
      
  • 只能在“表达式评估”对话框中调用方法   如果调试器已在断点处停止,但尚未暂停。
  •   
  • 表达式评估只能是“单级”。换句话说,如果   IntelliJ IDEA在从。调用的方法中的断点处停止   表达式评估,您不能使用表达式评估   功能再次。
  •   
  • 如果在Expression Evaluation中调用的方法有一个   在它的体内断点,这个断点将被忽略。
  •   

这显然只是事实的一半。

0 个答案:

没有答案