pyspark中的主URL是什么?
当我运行 pyspark.SparkContext('loc', 'pyspark_rec')
时,出现了一个错误,提示无法解析 master URL
。作为一个刚开始学习Spark编程的新手,我不太明白这是什么意思。不过就我的代码来说,我并没有使用任何部署模块(比如YARN、Hadoop等),只是想在独立模式下测试代码。所以我认为把URL设置为'loc'是没问题的。但是,有人能告诉我该如何解决这个问题吗?谢谢。
下面是错误代码。
File "recommender.py", line 112, in spark_recommendations
sc = pyspark.SparkContext('loc', 'pyspark_rec')
File "/Users/chlee021690/Desktop/Programming/spark/python/pyspark/context.py", line 134, in __init__
self._jsc = self._initialize_context(self._conf._jconf)
File "/Users/chlee021690/Desktop/Programming/spark/python/pyspark/context.py", line 180, in _initialize_context
return self._jvm.JavaSparkContext(jconf)
File "/Users/chlee021690/anaconda/lib/python2.7/site-packages/py4j/java_gateway.py", line 701, in __call__
self._fqn)
File "/Users/chlee021690/anaconda/lib/python2.7/site-packages/py4j/protocol.py", line 300, in get_return_value
format(target_id, '.', name), value)
Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: org.apache.spark.SparkException: Could not parse Master URL: 'loc'
at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:1564)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:307)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:53)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:234)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
at py4j.Gateway.invoke(Gateway.java:214)
at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:79)
at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68)
at py4j.GatewayConnection.run(GatewayConnection.java:207)
at java.lang.Thread.run(Thread.java:744)
2 个回答
2
你可以使用类似下面的代码:
./bin/pyspark --master local[8]
from pyspark import SparkContext
sc = SparkContext("local", "context")
3
主网址通常是服务器的IP地址,如果是独立系统的话,就是本地地址,也就是localhost。
独立模式下的地址是:spark://localhost:7077
服务器模式下的地址是:spark://你的主服务器IP地址:7077