在 Anaconda 中使用 Jupyter Notebook 时,调用来执行此操作的函数 findspark.py 执行以下操作:
def find():
spark_home = os.environ.get('SPARK_HOME', None)
if not spark_home:
for path in [
'/usr/local/opt/apache-spark/libexec', # OS X Homebrew
'/usr/lib/spark/' # AWS Amazon EMR
# Any other common places to look?
]:
if os.path.exists(path):
spark_home = path
break
if not spark_home:
raise ValueError("Couldn't find Spark, make sure SPARK_HOME env is set"
" or Spark is in an expected location (e.g. from homebrew installation).")
return spark_home
所以我们将遵循下一个程序。
1。指定 SPARK_HOME 和 JAVA_HOME
正如我们在上面的函数中看到的,对于 Windows,我们需要指定位置。下一个函数是对这些answer 稍作修改的版本。之所以修改它是因为还需要指定一个JAVA_HOME,也就是你安装它的目录。另外,我创建了一个 spark 目录,我在其中移动了我正在使用的下载版本的 Spark,对于此过程,您可以查看这些 link。
import os
import sys
def configure_spark(spark_home=None, pyspark_python=None):
spark_home = spark_home or "/path/to/default/spark/home"
os.environ['SPARK_HOME'] = spark_home
os.environ['JAVA_HOME'] = 'C:\Program Files\Java\jre1.8.0_231'
# Add the PySpark directories to the Python path:
sys.path.insert(1, os.path.join(spark_home, 'python'))
sys.path.insert(1, os.path.join(spark_home, 'python', 'pyspark'))
sys.path.insert(1, os.path.join(spark_home, 'python', 'build'))
# If PySpark isn't specified, use currently running Python binary:
pyspark_python = pyspark_python or sys.executable
os.environ['PYSPARK_PYTHON'] = pyspark_python
configure_spark('C:\spark\spark-2.4.4-bin-hadoop2.6')
2。配置 SparkContext
在本地工作时,您应该按以下方式配置 SparkContext:(这些 link 很有用)
import findspark
from pyspark.conf import SparkConf
from pyspark.context import SparkContext
# Find Spark Locally
location = findspark.find()
findspark.init(location, edit_rc=True)
# Start a SparkContext
configure = SparkConf().set('spark.driver.host','127.0.0.1')
sc = pyspark.SparkContext(master = 'local', appName='desiredName', conf=configure)
这个过程对我来说很好,谢谢!