我使用pyspark的方法是始终在jupyter中运行以下代码。是否总是需要这种方法?
import findspark
findspark.init('/opt/spark2.4')
import pyspark
sc = pyspark.SparkContext()
答案 0 :(得分:1)
如果要减少对findspark
的依赖性,只需确保在.bashrc
中有这些变量
export SPARK_HOME='/opt/spark2.4'
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
export PYSPARK_DRIVER_PYTHON="jupyter"
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
export PYSPARK_PYTHON=python3
export PATH=$SPARK_HOME:$PATH:~/.local/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
根据您的环境和spark版本更改目录。除此之外,findspark
必须在您的代码中,以便python解释器找到spark目录
如果可以使用,则可以运行pip uninstall findspark
纯python解决方案,请将此代码添加到jupyter笔记本顶部(也许在第一个单元格中):
import os
import sys
os.environ["PYSPARK_PYTHON"] = "/opt/continuum/anaconda/bin/python"
os.environ["SPARK_HOME"] = "/opt/spark2.4"
os.environ["PYLIB"] = os.environ["SPARK_HOME"] + "/python/lib"
sys.path.insert(0, os.environ["PYLIB"] +"/py4j-0.9-src.zip")
sys.path.insert(0, os.environ["PYLIB"] +"/pyspark.zip")