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

Нет runParagraph() с использованием интерпретатора Python на Apache Zeppelin

Я не могу использовать z.z.useParagraph() ни с помощью интерпретаторов %python, ни с %spark.pyspark.

В минимальном нерабочем примере можно начать с пустой записной книжки и добавить следующие два абзаца:

Первый параграф:

%python
print("Hello")
z.z.runParagraph('REPLACE_ME')

Второй абзац:

%python
print("World")

Затем заменяется REPLACE_ME идентификатором абзаца из второго абзаца и, наконец, выполняется первый абзац. Результатом будет исключение, указывающее, что метод runParagraph() не существует. Полное исключение, которое я получил:

Traceback (most recent call last):
  File "/tmp/zeppelin_python-9073316303905892812.py", line 283, in <module>
    raise Exception(traceback.format_exc())
Exception: Traceback (most recent call last):
  File "/tmp/zeppelin_python-9073316303905892812.py", line 276, in <module>
    exec(code, _zcUserQueryNameSpace)
  File "<stdin>", line 2, in <module>
  File "/zeppelin/interpreter/python/py4j-0.9.2/src/py4j/java_gateway.py", line 836, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/zeppelin/interpreter/python/py4j-0.9.2/src/py4j/protocol.py", line 314, in get_return_value
    format(target_id, ".", name, value))
Py4JError: An error occurred while calling t.runParagraph. Trace:
py4j.Py4JException: Method runParagraph([class java.lang.String]) does not exist
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335)
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:344)
    at py4j.Gateway.invoke(Gateway.java:279)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:209)
    at java.lang.Thread.run(Thread.java:748)

Однако,

%python
z.z.runParagraph

сообщает <py4j.java_gateway.JavaMember object at 0x7f7319460d90>, поэтому я полагаю, что метод должен быть доступен таким образом. Я пропустил некоторые шаги инициализации? Как я могу запустить какой-то другой абзац с помощью интерпретаторов Python?

05.03.2018

  • Документы смотреть не пробовали? Какими бы страшными они ни были, обычно они помогают. 05.03.2018
  • @MustacheMoses Да, есть. 05.03.2018

Ответы:


1

Вам нужен метод z.z.run(<paragraph-id>)

Вы можете проверить тип/класс объектов контекста, чтобы найти их методы в исходном коде.

%spark.pyspark
print(type(z))
# <class '__main__.PyZeppelinContext'>
print(z.z.getClass())
# class org.apache.zeppelin.spark.SparkZeppelinContext

SparkZeppelinContext расширяет BaseZeppelinContext, где вы можете найти методы, соответствующие тем, которые задокументированы для Back-end API в эта диаграмма.

30.11.2018
  • Спасибо. Когда у меня будет время проверить, я вернусь, чтобы отметить этот вопрос как правильный. Так почему же это frontend-api при использовании %angular, а backend-pi при использовании %python? Вы можете остановиться на этом? 30.11.2018
  • Я не имею отношения к проекту, я просто нашел ваш вопрос, когда искал, как выполнить ту же задачу. Из чтения документации кажется, что интерфейс API реализован только для углового контекста. Другие интерпретаторы по-прежнему могут получить доступ к методам класса BaseZeppelinContext, в котором реализован внутренний API. 04.12.2018
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

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

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

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

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


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