WedX - журнал о программировании и компьютерных науках

Django поднять AppRegistryNotReady (приложения еще не загружены.) django.core.exceptions.AppRegistryNotReady: приложения еще не загружены

Я пытаюсь использовать pyspark для предварительной обработки данных для модели прогнозирования. Я получаю сообщение об ошибке, когда пытаюсь запустить spark.createDataFrame из своей предварительной обработки. Есть ли способ проверить, как выглядит обработанный RDD, прежде чем переходить к кадру данных?

    import findspark
    findspark.init('/usr/local/spark')
    import pyspark
    from pyspark.sql import SQLContext
    import os
    import pandas as pd
    import geohash2

    sc = pyspark.SparkContext('local', 'sentinel')
    spark = pyspark.SQLContext(sc)
    sql = SQLContext(sc)
    working_dir = os.getcwd()

    df = sql.createDataFrame(data)

    df = df.select(['starttime', 'latstart','lonstart', 'latfinish', 'lonfinish', 'trip_type'])
    df.show(10, False)
    processedRDD = df.rdd
    processedRDD = processedRDD \
                    .map(lambda row: (row, g, b, minutes_per_bin)) \
                    .map(data_cleaner) \
                    .filter(lambda row: row != None)
    print(processedRDD)
    featuredDf = spark.createDataFrame(processedRDD, ['year', 'month', 'day', 'time_cat', 'time_num', 'time_cos', \
                                              'time_sin', 'day_cat', 'day_num', 'day_cos', 'day_sin', 'weekend', \
                                              'x_start', 'y_start', 'z_start','location_start', 'location_end', 'trip_type'])

Я получаю эту ошибку:

[Stage 1:>                                                          (0 + 1) / 1]2019-10-24 15:37:56 ERROR Executor:91 - Exception in task 0.0 in stage 1.0 (TID 1)


raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:452)
at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:588)
at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:571)
at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:406)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
at scala.collection.Iterator$class.foreach(Iterator.scala:891)
at org.apache.spark.InterruptibleIterator.foreach(InterruptibleIterator.scala:28)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59)
at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:104)
at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:48)
at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:310)
at org.apache.spark.InterruptibleIterator.to(InterruptibleIterator.scala:28)
at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:302)
at org.apache.spark.InterruptibleIterator.toBuffer(InterruptibleIterator.scala:28)
at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:289)
at org.apache.spark.InterruptibleIterator.toArray(InterruptibleIterator.scala:28)
at org.apache.spark.api.python.PythonRDD$$anonfun$3.apply(PythonRDD.scala:153)
at org.apache.spark.api.python.PythonRDD$$anonfun$3.apply(PythonRDD.scala:153)
at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2101)
at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2101)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.run(Task.scala:121)
at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:402)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:408)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 more

Я не понимаю, какое это имеет отношение к импорту приложения


  • Я даже не вижу, где в этом скрипте упоминается django... Что такое findspark? 24.10.2019
  • это что-то вроде дескриптора для использования spark на моем сервере Django, чтобы вычисления можно было выполнять в 10 раз быстрее и дешевле. 25.10.2019

Ответы:


1

По сути, вам нужно загрузить свои настройки и заполнить реестр приложений Django, прежде чем делать что-либо еще. У вас есть вся необходимая информация в документации Django.

https://docs.djangoproject.com/en/2.2/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage

24.10.2019

2

Я не знаю, какое отношение этот скрипт имеет к Django, но добавление следующих строк в начало скрипта, вероятно, решит эту проблему:

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
import django
django.setup()
24.10.2019

3

Вместо ручного запуска Hadoop я создаю сервер Python, который использует pyspack и вычисляет в 10 раз более быстрые алгоритмы искусственного интеллекта на сервере Django. Проблема возникла из-за SPARK-LOCAL-IP, использовался другой IP-адрес (тот, который я использую для подключения к удаленной базе данных через sshtunnel). Я импортирую и использую pyspark. Мне пришлось переименовать файл и добавить правильный IP.

 cd /usr/local/spark/conf
 touch spark-env.sh.template
 mv -i spark-env.sh.template spark-env.sh
 nano spark-env.sh
 paste: SPARK-LOCAL_IP="127.0.1.1"

Затем мне пришлось добавить в свой views.py sc.setLogLevel("ERROR"), чтобы увидеть, в чем была настоящая проблема. Иногда отладка java в python может быть проблематичной. Столбец был datetime вместо строки, и я это исправил.

25.10.2019
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]