![](/img/trans.png)
[英](PySpark) Pathing error: exception in thread “main” java.io.ioexception cannot run program “python”
[英]Exception in thread "main" java.io.IOException: Cannot run program "": error=2, No such a file or directory
我在執行以下腳本時遇到了這個問題
./spark-submit /home/*****/public_html/****/****.py
我首先使用 python3.7.2 和后來的 python3.5.2 但仍然收到以下錯誤消息。
Exception in thread "main" java.io.IOException: Cannot run program "": error=2, No such a file or directory.
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at org.apache.spark.deploy.PythonRunner$.main(PythonRunner.scala:100)
at org.apache.spark.deploy.PythonRunner.main(PythonRunner.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:894)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:198)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:228)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:137)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.io.IOException: error=2, No such a file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)... 12 more`
在它之前,我有幾個消息輸出為
2019-02-07 11:30:18 WARN Utils:66 - Your hostname, localhost.localdomain resolves to a loopback address: 127.0.0.1; using xxx.xxx.xxx.xxx instead (on interface eth0)
2019-02-07 11:30:18 WARN Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address
2019-02-07 11:30:19 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
我能夠執行 python3 -VI 能夠啟動 spark-shell 和 pyspark
而且我覺得很奇怪,“”之間沒有顯示任何信息。
對於我的 python 代碼,它以
import sys
import urllib3
import requests
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import StructType, StructField
from pyspark.sql.types import DoubleType, IntegerType, StringType
from CommonFunctions import *
from LanguageCodeParser import *
我還嘗試了一個非常簡單的 python 代碼
print("This is a test.")
這是執行bash -x spark-submit test.py
后的一些消息
+ '[' -z /opt/spark-2.3.2-bin-hadoop2.7 ']'
+ export PYTHONHASHSEED=0
+ PYTHONHASHSEED=0
+ exec /opt/spark-2.3.2-bin-hadoop2.7/bin/spark-class org.apache.spark.deploy.SparkSubmit test.py
但是,它不起作用。 提前感謝您的幫助。
我發現設置PYSPARK_PYTHON=/usr/bin/python3
很有用
如果這個環境變量可以設置在
/opt/spark-2.3.2-bin-hadoop2.7/conf/spark-env.sh
如上所述,但在 windows 的情況下, spark-env.sh.template 應重命名為 spark-env.cmd 並應插入以下內容。
set PYSPARK_PYTHON=C:\Users\usr\anaconda3\python.exe
set PYSPARK_DRIVER_PYTHON=C:\Users\usr\anaconda3\python.exe
set HADOOP_HOME=c:\winutils
請刪除此文件中所有以“#”開頭的注釋。 希望以上對你也有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.