如何使用自定义属性初始化 SparkContext?
How to initialise SparkContext with custom properties?
我正在使用 spark-shell.
学习 Spark
当运行终端的spark-shell时,已经默认提供了一个sparkContext。我想向 spark 上下文添加一些手动设置(如 setMaster("local") 和 setAppName("KVApp")).
当尝试从 spark shell 执行此操作时,如下所示:
scala> var conf= new SparkConf().setMaster("local").setAppName("MyApp")
conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@55fb92f8
scala> val sc = new SparkContext(conf)
我收到以下错误:
org.apache.spark.SparkException: Only one SparkContext may be running
in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:
org.apache.spark.SparkContext.<init>(SparkContext.scala:82)
org.apache.spark.repl.SparkILoop.createSparkContext(SparkILoop.scala:1017)
$iwC$$iwC.<init>(<console>:15)
$iwC.<init>(<console>:24)
<init>(<console>:26)
.<init>(<console>:30)
.<clinit>(<console>)
.<init>(<console>:7)
.<clinit>(<console>)
$print(<console>)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346)
org.apache.spark.repl.SparkIMain.loadAndRunReq(SparkIMain.scala:840)
org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
这很明显,因为在启动 spark 时已经创建了 spark 上下文 shell。
有什么方法可以通过一些自定义属性实现启动火花 shell?
你可以像使用 spark-submit
那样做 spark-shell --conf key=value --name MyShell
你可以这样做:
spark-shell --master "..." --name "..."
您可以运行spark-shell --help
查看所有可用选项
我正在使用 spark-shell.
学习 Spark当运行终端的spark-shell时,已经默认提供了一个sparkContext。我想向 spark 上下文添加一些手动设置(如 setMaster("local") 和 setAppName("KVApp")).
当尝试从 spark shell 执行此操作时,如下所示:
scala> var conf= new SparkConf().setMaster("local").setAppName("MyApp")
conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@55fb92f8
scala> val sc = new SparkContext(conf)
我收到以下错误:
org.apache.spark.SparkException: Only one SparkContext may be running
in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:
org.apache.spark.SparkContext.<init>(SparkContext.scala:82)
org.apache.spark.repl.SparkILoop.createSparkContext(SparkILoop.scala:1017)
$iwC$$iwC.<init>(<console>:15)
$iwC.<init>(<console>:24)
<init>(<console>:26)
.<init>(<console>:30)
.<clinit>(<console>)
.<init>(<console>:7)
.<clinit>(<console>)
$print(<console>)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346)
org.apache.spark.repl.SparkIMain.loadAndRunReq(SparkIMain.scala:840)
org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
这很明显,因为在启动 spark 时已经创建了 spark 上下文 shell。
有什么方法可以通过一些自定义属性实现启动火花 shell?
你可以像使用 spark-submit
那样做spark-shell --conf key=value --name MyShell
你可以这样做:
spark-shell --master "..." --name "..."
您可以运行spark-shell --help
查看所有可用选项