概述

本文讲述如何通过spark-shell来调试scala代码文件,这样不需要IDE就可以对scala文件进行调试,在代码量较小的情况下比较适用。

方法1:使用:load 命令

有时候为了在spark-shell中调试一段代码,可以在spark-shell中使用:load 命令。如下:

  • test.scala文件内容
val df3 = Seq((100,"xiaoming",30)).toDF("id", "name","age")
  • 在spark-shell中加载该文件
scala> :load /opt/testscala/test.scala
Loading /opt/testscala/test.scala...
df3: org.apache.spark.sql.DataFrame = [id: int, name: string ... 1 more field]

scala> df3.show()
+---+--------+---+
| id|    name|age|
+---+--------+---+
|100|xiaoming| 30|
+---+--------+---+

通过这种方式可以对代码进行交互式调试,而且还能看到每一行执行的结果,在代码比较小的时候,比较方便。

方法2:启动spark-shell时加载

可以通过spark-shell -i选项在启动spark-shell时,来加载和执行需要调试的scala代码文件。如下:

./bin/spark-shell -i /opt/testscala/test.scala 
scala> df3.show()
+---+--------+---+
| id|    name|age|
+---+--------+---+
|100|xiaoming| 30|
+---+--------+---+

方法3:通过 spark-shell < 来执行

也可以通过以下命令来记载scala代码片段:

./bin/spark-shell < test.scala

但这种方式是一次运行的,代码执行完成后就spark-shell就直接退出,没法对代码进行交互式调试。

小结

本文讲述了如何通过spark-shell来调试运行scala代码,这样在调试scala代码时可以不使用IDE,在代码量较小时比较适用。