Dataframe 在pyspark中的数据帧上应用udf后出错
PYSPARK版本2.3.2 我在pyspark中使用了具有以下模式的数据帧(df):Dataframe 在pyspark中的数据帧上应用udf后出错,dataframe,error-handling,pyspark,user-defined-functions,Dataframe,Error Handling,Pyspark,User Defined Functions,PYSPARK版本2.3.2 我在pyspark中使用了具有以下模式的数据帧(df): >>> df.printSchema <bound method DataFrame.printSchema of DataFrame[id: string, F: string, D: string, T: string, S: string, P: string]>
>>> df.printSchema
<bound method DataFrame.printSchema of
DataFrame[id: string,
F: string,
D: string,
T: string,
S: string,
P: string]>
我所做的是:
df1 = df.withColumn("occ", rep(col("D")))
但在df1.show()之后出现错误:
df1.show()
[Stage 9:>
(0 + 1) / 1]19/08/23 23:59:15 WARN
org.apache.spark.scheduler.TaskSetManager:
Lost task 0.0 in stage 9.0 (TID 30, cluster, executor 1):
java.io.IOException:
Cannot run program "/opt/conda/bin/python":
error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at .....
Caused by: java.io.IOException: error=2, No such file or directory
19/08/23 23:59:16 ERROR
org.apache.spark.scheduler.TaskSetManager: Task 0 in stage 9.0 failed 4 times; aborting job
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/spark/python/pyspark/sql/dataframe.py", line 350, in show
print(self._jdf.showString(n, 20, vertical))
File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
File "/usr/lib/spark/python/pyspark/sql/utils.py", line 63, in deco
return f(*a, **kw)
File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o339.showString.
.......
df1.show()
[第9阶段:>
(0+1)/1]19/08/23 23:59:15警告
org.apache.spark.scheduler.TaskSetManager:
阶段9.0中的任务0.0丢失(TID 30,群集,执行器1):
java.io.IOException:
无法运行程序“/opt/conda/bin/python”:
错误=2,没有这样的文件或目录
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
在
原因:java.io.IOException:error=2,没有这样的文件或目录
19/08/23 23:59:16错误
org.apache.spark.scheduler.TaskSetManager:stage 9.0中的任务0失败4次;中止工作
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/spark/python/pyspark/sql/dataframe.py”,第350行,在show中
打印(self.\u jdf.showString(n,20,垂直))
文件“/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”,第1257行,在__
文件“/usr/lib/spark/python/pyspark/sql/utils.py”,第63行,deco格式
返回f(*a,**kw)
文件“/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py”,第328行,在get_return_值中
py4j.protocol.Py4JJavaError:调用o339.showString时出错。
.......
看起来您的安装有问题
Cannot run program "/opt/conda/bin/python":
error=2, No such file or directory
看起来您的安装有问题
Cannot run program "/opt/conda/bin/python":
error=2, No such file or directory
问题是,已安装的conda软件包覆盖了默认python,这导致了错误 问题是安装的conda软件包覆盖了默认python,这导致了错误 可能问题不在代码中
检查您正在使用的Java JDK版本。我知道的是
.show()
方法与Java JDK 11不兼容。如果您正在使用此版本,只需降级到版本8。不要忘记为JDK 8正确配置环境变量。也许问题不在代码中
检查您正在使用的Java JDK版本。我知道的是.show()
方法与Java JDK 11不兼容。如果您正在使用此版本,只需降级到版本8。不要忘记为JDK 8正确配置环境变量