python - Apache Zeppelin 上没有使用 python 解释器的 runParagraph()

标签 python apache-zeppelin

我无法使用z.z.useParagraph()都不使用%python也不%spark.pyspark口译员。

在一个最小的不起作用的示例中,可以从一个空笔记本开始并添加以下两段:

第一段:

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

第二段:

%python
print("World")

然后用一个替换 REPLACE_ME使用第二段中的段落 ID,最后运行第一段。结果将是一个异常,指出方法 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 解释器运行其他段落?

最佳答案

您想要的方法是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 ,您可以在其中找到与 this chart 中记录的后端 API 相匹配的方法。 .

关于python - Apache Zeppelin 上没有使用 python 解释器的 runParagraph(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49116655/

相关文章:

python - 为什么 Anaconda 将我的默认 Python 路径添加到特定环境的路径中?

python - 在 python 中简单编辑二进制文件

amazon-web-services - 如何在 EMR 中引导期间配置 Zeppelin-env.sh

centos - 我如何将 Zeppelin 设置为 CentOS 上启动服务的一部分?

apache-spark - 如何获得相邻 Zeppelin 单元之间上下文的连续性

pyspark - AWS EMR 集群中的权限被拒绝 : user=zeppelin while using %spark. pyspark 解释器

python - Flask:对多个表单字段进行条件验证

python - 如何使用与 Python 中绘制的数据框不同的数据框为 Seaborn 箱线图着色?

python - Django 删除前导零

apache-zeppelin - Apache Zeppelin 0.9.0 - Helium 组件列表为空