我正在尝试从一个简单的Pandas数据框构建一个Spark数据框。这是我遵循的步骤。
import pandas as pd
pandas_df = pd.DataFrame({"Letters":["X", "Y", "Z"]})
spark_df = sqlContext.createDataFrame(pandas_df)
spark_df.printSchema()
到这里一切都正常。输出结果为:
root
|-- Letters: string (nullable = true)
问题出现在我尝试打印DataFrame时:
spark_df.show()
这是结果:
在调用 o158.collectToPython 时发生错误。: org.apache.spark.SparkException:由于阶段失败而中止作业:第5.0阶段中的任务0失败了1次,最近一次失败:在第5.0阶段中(TID 5,localhost,执行程序驱动程序)失去了任务0.0: org.apache.spark.SparkException:
来自python工作进程的错误:
执行Jupyter命令“pyspark.daemon”时出错:[Errno 2]没有此类文件或目录PYTHONPATH为:
/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/lib/pyspark.zip:/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip:/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/jars/spark-core_2.11-2.4.0.jar:/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip:/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/: org.apache.spark.SparkException: p y s p a r k . 恶魔的 stdout 中没有端口号
这是我的 Spark 规格:
SparkSession - hive
SparkContext
Spark UI
版本: v2.4.0
主节点: local[*]
应用名称: PySparkShell
这是我的虚拟环境:
export PYSPARK_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='lab'
事实:
如错误所述,它与从 Jupyter 运行 pyspark 有关。使用 'PYSPARK_PYTHON=python2.7' 和 'PYSPARK_PYTHON=python3.6' 运行正常。