Dataframe 如何修复PySpark-Py4JJavaError中的数据帧函数问题
我试图在PySpark和笔记本中创建和分析数据帧 以下是我在Jupyter笔记本中的代码Dataframe 如何修复PySpark-Py4JJavaError中的数据帧函数问题,dataframe,pyspark,jupyter-notebook,Dataframe,Pyspark,Jupyter Notebook,我试图在PySpark和笔记本中创建和分析数据帧 以下是我在Jupyter笔记本中的代码 从pyspark.sql导入SparkSession spark=SparkSession.builder\ .master(“本地”)\ .appName(“神经网络模型”)\ .config(“spark.executor.memory”,“6gb”)\ .getOrCreate() 我可以开始Spark课程 df1=spark.createDataFrame([('John',56,80)]) 打印
从pyspark.sql导入SparkSession
spark=SparkSession.builder\
.master(“本地”)\
.appName(“神经网络模型”)\
.config(“spark.executor.memory”,“6gb”)\
.getOrCreate()
我可以开始Spark课程
df1=spark.createDataFrame([('John',56,80)])
打印(df1.D类型)
打印(df1)
打印(df1.show())
我能够创建df1,dataframe,但不知何故,当我试图在df1.show()中使用数据帧函数时,我收到了错误消息
Py4JJavaError回溯(最近的调用
最后)在
2个打印(df1.D类型)
3打印(df1)
---->4打印(df1.show())
Py4JJavaError:调用o501.showString时出错:
org.apache.spark.sparkeexception:由于阶段失败,作业中止:
阶段9.0中的任务0失败1次,最近一次失败:丢失任务0.0
在9.0阶段(TID 22、本地主机、执行器驱动程序):
org.apache.spark.SparkException:Python工作者无法连接回。
在
org.apache.spark.api.PythonWorkerFactory.createSimpleWorker(PythonWorkerFactory.scala:170)
在
org.apache.spark.api.PythonWorkerFactory.create(PythonWorkerFactory.scala:97)
位于org.apache.spark.SparkEnv.createPythonWorker(SparkEnv.scala:117)
在
org.apache.spark.api.python.BasePythonRunner.compute(PythonRunner.scala:108)
位于org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:65)
在org.apache.spark.rdd.rdd.computeOrReadCheckpoint(rdd.scala:324)
你能帮我解决这个问题吗?我不确定是系统问题还是我的代码
谢谢 df1.show()
只显示数据帧的内容。它是一个返回单位的函数(不返回值)。因此,打印(df1.show())
将失败(在Databricks笔记本中返回无)
如果您想查看df1的内容,只需执行以下操作
df1.show()
无打印()
这实际上是show()的实现:
def show():单位=显示(20)
def show(numRows:Int):单位=show(numRows,truncate=true)
def show(numRows:Int,truncate:Boolean):单位=if(truncate){
println(showString(numRows,truncate=20))
}否则{
println(showString(numRows,truncate=0))
}
感谢您的反馈。我还尝试了df1.show()。我收到了同样的错误信息。我还检查它是否仅用于.show()。当我尝试df1.collect()时,也收到了相同的错误消息。我担心这是由于某些制度的建立。我使用jdk1.8.0_201和Spark-2.4.0-bin-hadoop2.7设置了Spark环境。我将Spark与Jupyter笔记本集成在一起。