[英]Create Spark DataFrame from Pandas DataFrame
我正在尝试从简单的Pandas DataFrame构建Spark DataFrame。 这是我遵循的步骤。
import pandas as pd
pandas_df = pd.DataFrame({"Letters":["X", "Y", "Z"]})
spark_df = sqlContext.createDataFrame(pandas_df)
spark_df.printSchema()
直到这一点一切都OK。 输出为:
根
|-字母:字符串(nullable = true)
当我尝试打印DataFrame时出现问题:
spark_df.show()
结果如下:
调用o158.collectToPython时发生错误。 :org.apache.spark.SparkException:由于阶段失败而中止作业:阶段5.0中的任务0失败1次,最近一次失败:阶段5.0中的任务0.0丢失(TID 5,本地主机,执行程序驱动程序):org.apache.spark .SparkException:
来自python worker的错误:
执行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/:组织。 apache.spark.SparkException:pyspark.daemon的标准输出中没有端口号
这些是我的Spark规格:
SparkSession-蜂巢
SparkContext
Spark用户界面
版本:v2.4.0
硕士:本地[*]
AppName:PySparkShell
这是我的venv:
导出PYSPARK_PYTHON = jupyter
导出PYSPARK_DRIVER_PYTHON_OPTS ='实验室'
事实:
正如错误所提到的,这与从Jupyter运行pyspark有关。 使用'PYSPARK_PYTHON = python2.7'和'PYSPARK_PYTHON = python3.6'正常运行
导入并初始化findspark,创建spark会话,然后使用该对象将pandas数据框转换为spark数据框。 然后将新的Spark数据框添加到目录中。 经过测试并在python 3.6.6的Jupiter 5.7.2和Spyder 3.3.2中运行。
import findspark
findspark.init()
import pyspark
from pyspark.sql import SparkSession
import pandas as pd
# Create a spark session
spark = SparkSession.builder.getOrCreate()
# Create pandas data frame and convert it to a spark data frame
pandas_df = pd.DataFrame({"Letters":["X", "Y", "Z"]})
spark_df = spark.createDataFrame(pandas_df)
# Add the spark data frame to the catalog
spark_df.createOrReplaceTempView('spark_df')
spark_df.show()
+-------+
|Letters|
+-------+
| X|
| Y|
| Z|
+-------+
spark.catalog.listTables()
Out[18]: [Table(name='spark_df', database=None, description=None, tableType='TEMPORARY', isTemporary=True)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.