我需要始终运行一次findspark吗?

时间:2019-10-16 19:35:29

标签: python pyspark

我使用pyspark的方法是始终在jupyter中运行以下代码。是否总是需要这种方法?

import findspark
findspark.init('/opt/spark2.4')
import pyspark
sc = pyspark.SparkContext()

1 个答案:

答案 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")

来源:Tooltip 2nd