以前有关此错误的问题有答案说您需要做的就是更新您的Spark版本。我刚刚删除了早期版本的Spark并安装了为Hadoop 2.6.0构建的Spark 1.6.3。
我试过了:
s_df = sc.createDataFrame(pandas_df)
得到了这个错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-8-4e8b3fc80a02> in <module>()
1 #creating a spark dataframe from the pandas dataframe
----> 2 s_df = sc.createDataFrame(pandas_df)
AttributeError: 'SparkContext' object has no attribute 'createDataFrame'
有谁知道为什么?我尝试删除并重新安装相同的1.6版本,但它对我不起作用。
以下是我正在搞乱的环境变量,以使我的pyspark正常工作:
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
export PATH
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
# added by Anaconda installer
export PATH="/Users/pr/anaconda:$PATH"
# path to JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
#Spark
export SPARK_HOME="/Users/pr/spark" #version 1.6
export PATH=$PATH:$SPARK_HOME/bin
export PYSPARK_SUBMIT_ARGS="--master local[2]"
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
我可能需要单独安装Hadoop吗?我跳过了那一步,因为我不需要它来运行我的代码。
答案 0 :(得分:16)
SparkContext
没有,SQLContext
有:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
sqlContext.createDataFrame(pandas_df)
答案 1 :(得分:0)
如果您在文档中看到this,则可以使用SparkSession。
from pyspark.sql import SparkSession
sess = SparkSession(sc)
sess.createDataFrame(pandas_df/rdd, schema)