这种在Jupyter上运行Apache spark的方法曾经有效,但现在它抛出异常:在发送驱动程序之前退出Java网关进程其端口号
以前是Jupyter笔记本中的配置。
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
print(spark_home)
spark_home= spark_home+"/python"
sys.path.insert(0, spark_home)
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1- src.zip'))
filename = os.path.join(spark_home, 'pyspark/shell.py')
print(filename)
exec(compile(open(filename, "rb").read(), filename, 'exec'))
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.5" in open(spark_release_file).read():
pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "")
if not "pyspark-shell" in pyspark_submit_args:
pyspark_submit_args += " pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args
exec语句抛出异常。
请让我知道我做错了什么。
答案 0 :(得分:0)
您需要在if语句中调用execute语句
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
print(spark_home)
spark_home= spark_home+"/python"
sys.path.insert(0, spark_home)
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1- src.zip'))
filename = os.path.join(spark_home, 'pyspark/shell.py')
print(filename)
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.5" in open(spark_release_file).read():
argsstr= "--master yarn pyspark-shell ";
pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", argsstr)
if not "pyspark-shell" in pyspark_submit_args:
pyspark_submit_args += " pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args
exec(compile(open(filename, "rb").read(), filename, 'exec'))