首页 / 操作系统 / Linux / Scala的REPL Shell的调用
最近突然对spark的spark-shell发生了兴趣
它是如何启动scala的REPL的,并且在此前写入了常用的环境变量的呢?
通过查看spark的源码,找到了SparkILoop.scalaimport scala.tools.nsc.interpreter.{JPrintWriter, ILoop}/**
* A Spark-specific interactive shell.
*/
class SparkILoop(in0: Option[BufferedReader], out: JPrintWriter)
extends ILoop(in0, out) {
def this(in0: BufferedReader, out: JPrintWriter) = this(Some(in0), out)
def this() = this(None, new JPrintWriter(Console.out, true)) def initializeSpark() {
intp.beQuietDuring {
processLine("""
@transient val sc = {
val _sc = org.apache.spark.repl.Main.createSparkContext()
println("Spark context available as sc.")
_sc
}
""")
processLine("""
@transient val sqlContext = {
val _sqlContext = org.apache.spark.repl.Main.createSQLContext()
println("SQL context available as sqlContext.")
_sqlContext
}
""")
processLine("import org.apache.spark.SparkContext._")
processLine("import sqlContext.implicits._")
processLine("import sqlContext.sql")
processLine("import org.apache.spark.sql.functions._")
}
}
...
}可以看出SparkILoop继承自scala.tools.nsc.interpreter.ILoop
紧接着着看了ILoop的api doc
终于找到了启动ILoop的方法:import scala.tools.nsc.interpreter.ILoop
import scala.tools.nsc.Settingsval loop = new ILoop
loop.process(new Settings)使用IntelliJ IDEA编写Scala在Spark中运行 http://www.linuxidc.com/Linux/2015-08/122283.htmScala编程完整中文版 PDF http://www.linuxidc.com/Linux/2015-08/121033.htm快学Scala (中文完整扫描版) PDF http://www.linuxidc.com/Linux/2015-08/120950.htmUbuntu 安装 2.10.x版本的Scala http://www.linuxidc.com/Linux/2015-04/116455.htmSpark1.0.0部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htmCentOS 6.2(64位)下安装Spark0.8.0详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htmSpark简介及其在Ubuntu下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm安装Spark集群(在CentOS上) http://www.linuxidc.com/Linux/2013-08/88599.htmHadoop vs Spark性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htmSpark安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htmSpark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htmScala 的详细介绍:请点这里
Scala 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-10/1238233.htm