Конфигурация переменной среды после загрузки JDK
Добавлена системная переменная JAVA_HOME.
Путь новый
Проверьте, прошла ли установка успешно: javac -version (обратите внимание, что javac — это не Java)
Официальный сайт скачатьhttp://spark.apache.org/downloads.html,Если окно параметров не загружается, вы можете попытаться открыть URL-адрес на своем мобильном телефоне, чтобы получить ссылку для загрузки, а затем загрузить ее.
Разархивируйте его напрямую, будьте осторожны, чтобы в пути не было пробелов.
Конфигурация переменной среды
Конфигурация пути
Чтобы проверить установку, введите spark-shell в cmd.
Если появится сообщение «Добро пожаловать в Spark», установка прошла успешно. Если Hadoop не установлен, появится указанная выше ошибка, но она не повлияет на установку Spark.
Официальный сайт скачатьhttps://hadoop.apache.org/releases.html
После распаковки настройте соответствующую среду.
Добавлен HADOOP_HOME в системную переменную.
Конфигурация пути
В среде Windows вам необходимо установить что-нибудь для замены bin-файла в Hadoop.
Скачать адрес:https://github.com/steveloughran/winutils
Я использовал версию, похожую на Hadoop, и тест прошел нормально.
Непосредственно копировать и заменять
Тест еще раз: искровая оболочка
# Установка пакета
pip install pyspark -i https://pypi.doubanio.com/simple/
тестовое использование pyspark
from pyspark import SparkConf
from pyspark.sql import SparkSession
import traceback
appname = "test" # Название задачи
master = "local" # Настройка автономного режима''''
local: Все вычисления выполняются в одном потоке без каких-либо параллельных вычислений. Обычно мы используем этот режим для выполнения некоторого тестового кода на локальном компьютере или для практики.
local[K]: Укажите, сколько потоков использовать для выполнения вычислений. Например, local[4] запускает 4 рабочих потока. Обычно наш процессор имеет несколько ядер, поэтому мы указываем несколько потоков, чтобы максимально использовать вычислительную мощность процессора.
local[*]: Этот режим напрямую помогает вам установить количество потоков в соответствии с максимальным количеством ядер ЦП.
'''
spark_driver_host = "10.0.0.248"
try:
# conf = SparkConf().setAppName(appname).setMaster(master).set("spark.driver.host", spark_driver_host) # кластер
conf = SparkConf().setAppName(appname).setMaster(master) # местный
spark = SparkSession.builder.config(conf=conf).getOrCreate()
sc = spark.sparkContext
words = sc.parallelize(
["scala",
"java",
"hadoop",
"spark",
"akka",
"spark vs hadoop",
"pyspark",
"pyspark and spark"
])
counts = words.count()
print("Number of elements in RDD is %i" % counts)
sc.stop()
print('Расчет успешен!')
except:
sc.stop()
traceback.print_exc() # Возврат сообщения об ошибке
print('Ошибка соединения!')
Если возникает ошибка:
py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.isEncryptionEnabled does not exist in the JVM
Подключениеsparkувеличить передsparkпоиск(Поместите его прямо в начало кода)
import findspark
findspark.init()
Результаты испытаний:
F:\Anaconda3\python.exe D:/PycharmProjects/demo_pyspark.py
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).20/08/27 16:17:44 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Number of elements in RDD is 8
Расчет успешен!
Process finished with exit code 0
Примечание. Каталог не может существовать, когда pyspark сохраняет файл! ! В противном случае будет сообщено об ошибке, что каталог уже существует. Не забудьте удалить все папки!