我正在尝试在PySpark和Notebook中创建和分析数据框。
下面是我在Jupyter Notebook中的代码。
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.master("local") \
.appName("Neural Network Model") \
.config("spark.executor.memory", "6gb") \
.getOrCreate()
我能够启动Spark Session。
df1 = spark.createDataFrame([('John', 56, 80)])
print(df1.dtypes)
print(df1)
print(df1.show())
我能够创建df1,数据帧,但是以某种方式,当我尝试在df1.show()中使用数据帧功能时收到错误消息
Py4JJavaError Traceback(最近的呼叫 最后) 2打印(df1.dtypes) 3打印(df1) ----> 4个print(df1.show())
Py4JJavaError:调用o501.showString时发生错误。 : org.apache.spark.SparkException:由于阶段失败,作业中止了: 阶段9.0中的任务0失败1次,最近一次失败:丢失任务0.0 在阶段9.0(TID 22,本地主机,执行程序驱动程序)中: org.apache.spark.SparkException:Python工作程序无法重新连接。 在 org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker(PythonWorkerFactory.scala:170) 在 org.apache.spark.api.python.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)
您能帮我解决此问题吗?我不确定这是系统问题还是我的代码。
谢谢!
答案 0 :(得分:1)
df1.show()
仅显示数据框的内容。这是一个返回Unit(不返回值)的函数。因此print(df1.show())
会失败(在Databricks笔记本中返回None)
如果要查看df1的内容,只需要做
df1.show()
没有print()
这实际上是show()的实现:
def show(): Unit = show(20)
def show(numRows: Int): Unit = show(numRows, truncate = true)
def show(numRows: Int, truncate: Boolean): Unit = if (truncate) {
println(showString(numRows, truncate = 20))
} else {
println(showString(numRows, truncate = 0))
}