Eclipse 中的 PySpark:使用 PyDev

PySpark in Eclipse: using PyDev

我正在从命令行运行使用本地 pyspark 代码并且它有效:

/Users/edamame/local-lib/apache-spark/spark-1.5.1/bin/pyspark --jars myJar.jar --driver-class-path myJar.jar --executor-memory 2G --driver-memory 4G --executor-cores 3 /myPath/myProject.py

是否可以使用 PyDev 从 Eclipse 中 运行 这段代码? 运行 配置中需要的参数是什么?我试过并收到以下错误:

Traceback (most recent call last):
  File "/myPath/myProject.py", line 587, in <module>
    main()
  File "/myPath/myProject.py", line 506, in main
    conf = SparkConf()
  File "/Users/edamame/local-lib/apache-spark/spark-1.5.1/python/pyspark/conf.py", line 104, in __init__
    SparkContext._ensure_initialized()
  File "/Users/edamame/local-lib/apache-spark/spark-1.5.1/python/pyspark/context.py", line 234, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway()
  File "/Users/edamame/local-lib/apache-spark/spark-1.5.1/python/pyspark/java_gateway.py", line 76, in launch_gateway
    proc = Popen(command, stdin=PIPE, preexec_fn=preexec_func, env=env)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1308, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

有人知道吗?非常感谢!

考虑到以下先决条件:

  • 已安装 Eclipse、PyDev 和 Spark。
  • 配置了 Python 解释器的 PyDev。
  • 配置了 Spark Python 源的 PyDev。

这是您需要执行的操作:

  • 从 Eclipse ID,检查您是否在 PyDev 透视图中:

    • 在 Mac 上:Eclipse > 首选项
    • 在 Linux 上:Window > 首选项
  • 首选项 window,转到 PyDev > Interpreters > Python Interpreter:

    • 点击中央按钮[环境]
    • 单击按钮 [新建...] 添加一个新的环境变量。
    • 添加环境变量SPARK_HOME并验证:
    • 名称:SPARK_HOME,值:/path/to/apache-spark/spark-1.5.1/
    • 注意:不要使用$SPARK_HOME
    • 等系统环境变量

我还建议您在每个项目中处理自己的 log4j.properties 文件。

为此,您需要像之前那样添加环境变量 SPARK_CONF_DIR,例如:

Name: SPARK_CONF_DIR, Value: ${project_loc}/conf

如果您在使用变量 ${project_loc} 时遇到一些问题(例如:使用 Linux),请改为指定绝对路径。

或者,如果您想保留 ${project_loc},请右键单击每个 Python 来源,然后:运行s As > 运行 配置,然后创建您的 SPARK_CONF_DIR 环境选项卡中的变量,如前所述。

偶尔可以添加其他环境变量如TERMSPARK_LOCAL_IP等:

  • 名称:TERM,Mac 上的值:xterm-256color,Linux 上的值:xterm,当然如果你想使用 xterm
  • 名称:SPARK_LOCAL_IP,值:127.0.0.1(建议指定您的真实本地IP地址)

PS: 我不记得这个教程的来源,所以请原谅我没有引用作者。这不是我自己想出来的。