繁体   English   中英

从Pandas DataFrame创建Spark DataFrame

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM