Проблема при создании PySpark SparkContext в Python Spyder (NullPointerException) - PullRequest
0 голосов
/ 06 июня 2019

Я использую Windows 10 с Python 3.7 и Spark 2.4.

Я новичок в Spark и экосистеме Hadoop, но мы движемся в этом направлении и нуждаемся в инструментах Spark для работы с файлами Parquet.

Я успешно использовал этот урок для настройки Spark на моем компьютере. Когда я запускаю bin\pyspark из каталога %SPARK_HOME% в командной строке, я вижу:

C:\spark\spark-2.4.3-bin-hadoop2.7>bin\pyspark
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: 
Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
19/06/06 12:48:51 WARN NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
Welcome to
   ____              __
  / __/__  ___ _____/ /__
 _\ \/ _ \/ _ `/ __/  '_/
/__ / .__/\_,_/_/ /_/\_\   version 2.4.3
  /_/

Using Python version 3.7.1 (default, Dec 10 2018 22:54:23)
SparkSession available as 'spark'.
>>>

Указывает, что он работает успешно. Мне нужно иметь возможность установить SparkContext с PySpark в среде Spyder для разработки. В настоящее время у меня нет кластера Hadoop, поэтому я пытаюсь работать в автономном режиме на локальном компьютере.

Я тестировал следующий тестовый скрипт:

from pyspark import SparkConf
from pyspark import SparkContext

conf = SparkConf()
conf.setMaster('spark://localhost:7077')
conf.setAppName('spark-basic')
sc = SparkContext(conf=conf)

def mod(x):
    import numpy as np
    return (x, np.mod(x, 2))

rdd = sc.parallelize(range(1000)).map(mod).take(10)
print(rdd)

И я получаю следующую ошибку:

Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.lang.NullPointerException
    at org.apache.spark.storage.BlockManagerMaster.registerBlockManager(BlockManagerMaster.scala:64)
    at org.apache.spark.storage.BlockManager.initialize(BlockManager.scala:248)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:510)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:238)
    at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
    at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:69)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.lang.Thread.run(Unknown Source)

Есть ли у кого-нибудь понимание этой ошибки или что-то, что я могу делать неправильно, чтобы PySpark мог работать в Spyder?

Спасибо.

...