为了构建Electron应用程序,我正试图在Ubuntu上使用PyCharm而不是jupyter笔记本本地使用PySpark。但是,当我尝试设置SparkSession时,它不起作用。当我尝试这个:
spark = SparkSession.builder.master('local[*]').appName('Search').enableHiveSupport().getOrCreate
df = pd.DataFrame([1,2,3], columns=['Test'])
myschema = StructType([StructField('Test'),Integertype(),True)])
df2 = spark.createDataFrame(df,schema=myschema)
print(type(df2))
会话打开,但它告诉我
"AttributeError: 'function' object has no attribute 'createDataFrame' "
然后,用".getOrCreate(("重写上面的内容,它告诉我
"FileNotFoundError: [Error 2] No such file or directory "home/...././bin/spark-submit'
我想Pycharm的设置可能会取消,但我真的不明白为什么。
您需要使用方法调用getOrCreate()
,而不是getOrCreate
。此外,请确保在pycharm中用于项目的python解释器中安装pyspark
。您可以通过pycharm中的Preferences->Python解释器访问它。
更新:尝试在本地下载并提取spark二进制文件(例如spark 2.4.0(,然后在bashrc中添加以下条目(并获取源代码(。我假设您使用的是spark 2.4.0,所以py4j是这个版本特有的。对于任何其他版本的spark,请检查py4j版本并相应添加。
export SPARK_HOME=/<your_path>/spark-2.4.0-bin-hadoop2.7
export PYTHONPATH=${SPARK_HOME}/python:$PYTHONPATH
export PYTHONPATH=${SPARK_HOME}/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=/<location_of_python_interpreter>
无论您要链接到PYSPARK_PYTHON
中的python解释器是什么,请确保在您的pycharm项目中使用相同的python。