Dataframe 如何修复PySpark-Py4JJavaError中的数据帧函数问题

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和笔记本中创建和分析数据帧

以下是我在Jupyter笔记本中的代码

从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笔记本集成在一起。