Я использую 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?
Спасибо.