dataframe - 如何修复 PySpark 中的 DataFrame 函数问题 - Py4JJavaError
问题描述
我正在尝试在 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 print(df1.dtypes) 3 print(df1) ----> 4 print(df1.show())
Py4JJavaError:调用 o501.showString 时出错。:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 9.0 中的任务 0 失败 1 次,最近失败:阶段 9.0 中丢失任务 0.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) at org.apache.spark.api.python.BasePythonRunner.compute(PythonRunner.scala:108) at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:65 ) 在 org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
你能帮我解决这个问题吗?我不确定是系统问题还是我的代码。
谢谢!!!
解决方案
df1.show()
只显示数据框的内容。它是一个返回 Unit 的函数(它不返回值)。所以print(df1.show())
会失败(在 Databricks 笔记本中返回无)
如果要查看df1的内容,只需要做
df1.show()
没有打印()
这实际上是 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))
}
推荐阅读
- demandware - 需求软件/SFCC 先决条件
- apache-spark - spark集群模式下没有这样的文件或目录
- azure - Azure IoT 中心框架 3.5
- c++ - 使用 C++ 标准库以对数时间进行 Heapify
- algorithm - 在 O(n^2 * log n) 中 O(n^2) 来自哪里?
- java - 每个路径 Spring 多个 HandlerMethodArgumentResolver
- centos7 - sshd 执行新连接而不是 fork
- kubernetes - 为什么 dig 不通过 dns 名称解析 K8s 服务,而 nslookup 没有问题?
- mysql - 定期将数据从 AWS RDS (MySQL) 复制到另一台服务器(EC2 实例)
- c# - 在视图中检查模型是否有数据