【问题标题】:How to fix DataFrame function issues in PySpark - Py4JJavaError如何修复 PySpark 中的 DataFrame 函数问题 - Py4JJavaError
【发布时间】:2019-01-25 07:45:47
【问题描述】:

我正在尝试在 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 会话。

df1 = spark.createDataFrame([('John', 56, 80)])
print(df1.dtypes)
print(df1)
print(df1.show())

我能够创建 df1,dataframe,但不知何故,当我尝试在 df1.show() 中使用数据帧函数时收到错误消息

Py4JJavaError Traceback(最近调用 最后)在 2 打印(df1.dtypes) 3 打印(df1) ----> 4 打印(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)

您能帮我解决这个问题吗?我不确定是系统问题还是我的代码。

谢谢!!!

【问题讨论】:

    标签: dataframe pyspark jupyter-notebook


    【解决方案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))
    }
    

    【讨论】:

    • 感谢您的反馈。我也试过 df1.show()。我得到了同样的错误信息。我还检查它是否仅适用于 .show()。当我尝试 df1.collect() 时,我也收到了相同的错误消息。我担心这是由于某些系统设置造成的。我使用 jdk1.8.0_201 和 spark-2.4.0-bin-hadoop2.7 设置了 Spark 环境。我将 Spark 与 Jupyter notebook 集成在一起。
    猜你喜欢
    • 2019-12-30
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2020-07-03
    • 2019-08-02
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多