2015-10-25 61 views
1

我從命令行運行本地代碼pyspark和它的工作原理:PySpark在Eclipse:使用PyDev的

/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 

有沒有人有任何想法?非常感謝你!

回答

4

考慮以下先決條件:

  • 的Eclipse,PyDev的和星火安裝。
  • 配置了Python解釋器的PyDev。
  • 配置了Spark Python源代碼的PyDev。

下面是你需要做什麼:

  • 從Eclipse的ID,請檢查你的PyDev透視圖:

    • 在Mac:Eclipse的>首選項
    • 在Linux上:窗口>首選項
  • 窗口,去的PyDev>口譯> Python解釋器:

    • 點擊中央按鈕[環境]
    • 單擊按鈕[新建...]添加一個新的環境變量。
    • 添加環境變量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源代碼,然後:運行爲>運行配置,然後在環境選項卡中創建SPARK_CONF_DIR變量,如前所述。

有時候,你可以添加其他的環境變量,例如TERMSPARK_LOCAL_IP等:

  • 名稱:TERM,價值在Mac上:xterm方式256color,價值在Linux上:xterm的,如果你婉使用當然xterm的
  • 名稱:SPARK_LOCAL_IP,值:127.0.0.1(它的建議來指定真正的本地IP地址)

PS:我不記得這個來源教程,請原諒我不引用作者。我沒有自己想出這個。

+1

工程。非常感謝! – Edamame

+0

我在這裏找到了完整的指南:https://enahwe.wordpress.com/2015/11/25/how-to-configure-eclipse-for-developing-with-python-and-spark-on-hadoop/。在eliasah後的指示並沒有爲我工作,我認爲這一切都是關於Py4J配置 – Cristianpark

+0

遵循上述所有步驟,但我仍然收到以下錯誤------------ --------- raise Exception(「在發送驅動程序的端口號之前退出Java網關進程」) 例外:Java網關進程在向驅動程序發送其端口號之前退出 –