Spark Python3 + Pycharm + Windows среды - PullRequest
0 голосов
/ 29 мая 2018

версия для всех:

spark-2.1.0-bin-hadoop2.7.tar.gz    
hadoop-2.7.3.tar.gz    
scala-2.12.6
PyCharm 2017.1.3
Anaconda3
windows 8.1

настройки:

  1. установить или разархивировать JAVA / SCALA / SPARK / HADOOP и добавить их в переменную окружения
  2. addwinutils и hadoop lib в D: \ hadoop-2.7.3 \ bin для Windows X64 (https://github.com/rucyang/hadoop.dll-and-winutils.exe-for-hadoop2.7.3-on-windows_X64)
  3. копия D: \ spark-2.1.0-bin-hadoop2.7 \ python \pyspark для D: \ Program Files (x86) \ Anaconda3 \ Lib \ site-packages

  4. установить pycharm

пример кода:

from __future__ import print_function

import sys
from random import random
from operator import add

from pyspark.sql import SparkSession


if __name__ == "__main__":
    """
        Usage: pi [partitions]
    """
    spark = SparkSession\
        .builder\
        .appName("PythonPi")\
        .getOrCreate()

    partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
    n = 100000 * partitions

    def f(_):
        x = random() * 2 - 1
        y = random() * 2 - 1
        return 1 if x ** 2 + y ** 2 <= 1 else 0

    count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
    print("Pi is roughly %f" % (4.0 * count / n))

    spark.stop()

трассировка всего стека для ошибки:

"D: ​​\ Program Files (x86) \ Anaconda3 \ envs \ my_new_env_python35 \ python.exe" "D: / pyProject / spark session / run-tests.py "Использование стандартного профиля Spark log4j: org / apache / spark / log4j-defaults.properties

Установка уровня журнала по умолчанию" WARN ". Чтобы настроить уровень ведения журнала, используйтеsc.setLogLevel (newLevel). Для SparkR используйте setLogLevel (newLevel). Traceback (последний вызов был последним): файл "D: \ Program Files (x86) \ Anaconda3 \ lib \ runpy.py", строка 183, в _run_module_as_main mod_name, mod_spec, coФайл de = _get_module_details (mod_name, _Error) "D: \ Program Files (x86) \ Anaconda3 \ lib \ runpy.py", строка 109, в файле _get_module_details import (pkg_name) "", строка 961,в файле _find_and_load "", строка 950, в файле _find_and_load_unlocked "", строка 646, в файле _load_unlocked "", строка 616, в файле _load_backward_compatible "D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \pyspark.zip \ pyspark__init __. py ", строка 44, в файле" ", строка 961, в файле _find_and_load" ", строка 950, в файле _find_and_load_unlocked" ", строка 646, в файле _load_unlocked" ", строка 616, в файле _load_backward_compatible"D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ context.py", строка 36, в файле "", строка 961, в файле _find_and_load "", строка 950, в файле _find_and_load_unlocked "", строка 646, в файле _load_unlocked "", строка 616, в файле _load_backward_compatible "D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ java_gateway.py ", строка 25, в файле" D: \ Program Files (x86) \ Anaconda3 \ lib \ platform.py ", line 886, в «системном процессоре версии выпуска системного узла») Файл «D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ serializers.py», строка 393, в namedtupleОшибка типа: namedtuple () отсутствует 3 обязательных аргумента только для ключевых слов: «подробный», «переименовать» и «модуль» [Этап 0:>
(0 + 2) / 2] 18/05/29 08:59:20 ОШИБКА Исполнитель: Исключение в задаче 0.0 на этапе 0.0 (TID 0) org.apache.spark.SparkException: рабочий Python не подключился вовремя в org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkerFactory.scala:138) в org.apache.spark.api.python.PythonWorkerFactory.create (PythonWorkerFactory.scala: 67) в org.apache.spark.SparkEnv.createPythonWorker (SparkEnv.scala: 116) в org.apache.spark.api..PythonRunner.compute (PythonRDD.scala: 128) в org.apache.spark.api.python.PythonRDD.compute (PythonRDD.scala: 63) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 323) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 287) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 99) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 282)в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (поток) Вызывается: java.net.SocketTimeoutException: истекло время ожидания принятия на java.net.DualStackPlainSocketImpl.waitForNewConnection (собственный метод) на java.net.DualStackPlainSocketImpl.socketAccept (DualStackPlainSocketImpl.java.cketIcketScketPlayPlaySocketPlay)..java: 409) в java.net.PlainSocketImpl.accept (PlainSocketImpl.java:199) вjava.net.ServerSocket.implAccept (ServerSocket.java:545) в java.net.ServerSocket.accept (ServerSocket.java:513) в org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkF 13): PythonWalaF:... еще 12 18/05/29 08:59:20 ПРЕДУПРЕЖДЕНИЕ TaskSetManager: потерянное задание 0.0 на этапе 0.0 (TID 0, localhost, драйвер исполнителя): org.apache.spark.SparkException: рабочий Python не подключился вовремяпо адресу org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkerFactory.scala: 138) по адресу org.apache.spark.api.python.PythonWorkerFactory.create (PythonWorkerFactory.scark.ache.arkg.park.acheg.spg.pg. или 67).createPythonWorker (SparkEnv.scala: 116) в org.apache.spark.api.python.PythonRunner.compute (PythonRDD.scala: 128) в org.apache.spark.api.python.PythonRDD.compute (PythonRDD.scala: 63) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 323) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 287) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 99) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 282) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java: 1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748), вызванный: java.net.SocketTimeoutException: принять тайм-аутпо адресу java.net.DualStackPlainSocketImpl.waitForNewConnection (собственный метод) по адресу java.net.DualStackPlainSocketImpl.socketAccept (DualStackPlainSocketImpl.java:135) по адресу java.net.AbstractPlainSocketImpl.acava.mp.ImplImplImplPlayPlaySP(PlainSocketImpl.java:199) в java.net.ServerSocket.implAccept (ServerSocket.java:545) в java.net.ServerSocket.accept (ServerSocket.java:513) в org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkerFactory.scala: 133) ... еще 12

18/05/29 08:59:20 ОШИБКА TaskSetManager: Задача 0 на этапе 0.0 не выполнена 1 раз;прерывание задания Traceback (последний вызов был последним): файл «D: / pyProject / spark session 转化 /run-tests.py», строка 27, в count = spark.sparkContext.parallelize (range (1, n + 1), разделы) .map (f) .reduce (добавить) Файл "D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ rdd.py", строка 835, в уменьшенном файле "D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ rdd.py ", строка 809, в файле сбора" D: \ spark-2.1.0-bin-hadoop2 ".7 \ python \ lib \ py4j-0.10.4-src.zip \ py4j \ java_gateway.py ", строка 1133, в вызов Файл" D: \ spark-2.1.0-bin-hadoop2.7\ python \ lib \ pyspark.zip \ pyspark \ sql \ utils.py ", строка 63, в файле deco" D: \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ py4j-0.10.4-src.zip \ py4j \ protocol.py ", строка 319, в get_return_value py4j.protocol.Py4JJavaError: Произошла ошибка при вызове z: org.apache.spark.api.python.PythonRDD.collectAndServe.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задача 0 на этапе 0.0 не выполнена 1 раз, последний сбой: потерянная задача 0.0 на этапе 0.0 (TID 0, localhost, драйвер исполнителя): org.apache.spark.SparkException: рабочий Python не подключился назад во времени в org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkerFactory.scala: 138) в org.apache.spark.api.python.PythonWorkerFactory.ala для восстановления: 67) в org.apache.spark.SparkEnv.createPythonWorker (SparkEnv.scala: 116) в org.apache.spark.api.python.PythonRunner.compute (PythonRDD.scala: 128) в org.apache.spark.api.python.PythonRDD.compute (PythonRDD.scala: 63) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 323) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 287)в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 99) в илиg.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 282) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExruner $ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748). Причина: java.net.SocketTimeoutException: истекло время ожидания для java.net.DualStackPlainSocketImpl.waitForNewConnection (собственный метод) в java.net.DualStackPlainSocketImpl.socketAccept (DualStackPlainSocketImpl.java:135) в java.net.AbstractPlainSocketImpl.accept (AbstractPlainSocketImpl.java:409) в java.net.PlainSocketImpl.accket.mpava.ocket.ocketSocketSocketSocketSackSec..java: 545) на java.net.ServerSocket.accept (ServerSocket.java:513) на org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorkerFactory.scala: 133) ... еще 12

трассировка стека драйверов: в org.apache.spark.scheduler.DAGScheduler.org $ apache $ spark $ планировщик $ DAGScheduler $$ failJobAndIndependentStages (DAGScheduler.scala: 1435) в org.apache.spark.scheduler.DAGScheduler $$ anonfun $ abortStage $ 1.apply (DAGScheduler.scala: 1423) в org.apache.spark.scheduler.DAGScheduler $$ anonfun $ abortStage 1.применить (DAGScheduler.scala: 1422) в scala.collection.mutable.ResizableArray $ class.foreach (ResizableArray.scala: 59) в scala.collection.mutable.ArrayBuffer.foreach (ArrayBuffer.scala: 48) в org.apache.spark.scheduler.DAGScheduler.abortStage (DAGScheduler.scala: 1422) в org.apache.spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler.scala: 802) в org.apache.spark.Scheduler $anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler.scala: 802) в scala.Option.foreach (Option.scala: 257) в org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed (DAGScheduler.scala: 802) илиspark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive (DAGScheduler.scala: 1650) в org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive (DAGScheduler.scala: 1605) в org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive (DAGScheduler.scala: 1594) в org.apache.spark.util.EventLoop $$ anon $ 1.run (EventLoop.scala: 48) в org.apache.spark.scheduler.DAGScheduler.runJob.scala: 628) в org.apache.spark.SparkContext.runJob (SparkContext.scala: 1918) в org.apache.spark.SparkContext.runJob (SparkContext.scala: 1931) в org.apache.spark.SparkContext.runJob (.scala: 1944) в org.apache.spark.SparkContext.runJob (SparkContext.scala: 1958) в org.apache.spark.rdd.RDD $$ anonfun $ собирать $ 1.apply (RDD.scala: 935) в орг.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 151) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 112) в org.apache.spark.rdd.RDSwithSRDD.scala: 362) в org.apache.spark.rdd.RDD.collect (RDD.scala: 934) в org.apache.spark.api.python.PythonRDD $ .collectAndServe (PythonRDD.scala: 453) в орг.apache.spark.api.python.PythonRDD.collectAndServe (PythonRDD.scala) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.javajlan.ho.j.: 498) в py4j.reflection.MethodInvoker.invoke (MethodInvoker.java:244) в py4j.reflection.ReflectionEngine.invoke (ReflectionEngine.java:357) в py4j.Gateway.invoke (Gateway.java:280) в py4j.com..AbstractCommand.invokeMethod (AbstractCommand.java:132) в py4j.commands.CallCommand.execute (CallCommand.java:79) в py4j.GatewayConnection.run (GatewayConnection.java:214) в java.lang.Thread.run (поток.java: 748) Причина: org.apache.spark.SparkException: рабочий Python не подключился вовремя вorg.apache.spark.createPythonWorker (SparkEnv.scala: 116) в org.apache.spark.api.python.PythonRunner.compute (PythonRDD.scala: 128) в org.apache.spark.api.python.PythonRDD.compute (PythonRDD.scala: 63)в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 323) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 287) в org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 99) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 282) в Java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) ... еще 1 причина: java.net.SocketTimeoutExceptionв java.net.DualStackPlainSocketImpl.waitForNewConnection (собственный метод) в java.net.DualStackPlainSocketImpl.socketAccept (DualStackPlainSocketImpl.java:135) в java.net.AbstractPlainSocketImpl.accept (AbstractPlainSocketImpl.java:409) в java.net.Plines.ocketв java.net.ServerSocket.implAccept (ServerSocket.java:545) в java.net.ServerSocket.accept (ServerSocket.java:513) в org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker (PythonWorker 13):) ... еще 12

Процесс завершен с кодом выхода 1

обновление

1.Подписанный pyspark в CMD работает нормально

2.версия Python использует 3.5.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...