Apache Zeppelin 0.9.0调用z.run()跨段落执行抛出空指针异常问题
问题诱因
Apache Zeppelin 0.9.0版本的Python解释器环境下,z.run() 双参数(传入note ID + 段落ID)调用存在已知的实现bug:ZeppelinContext的run方法内部未做权限上下文参数判空,触发空指针异常,和你贴出的错误栈完全匹配。
解决方案
方案1:同Note下调用简化参数(无需升级版本)
如果触发和被触发的段落属于同一个笔记,不需要传入note ID参数,仅传入目标段落ID即可,0.9.0版本对单参数的z.run()调用兼容正常。
修改后的Cell 1代码如下:
# Cell 1 - 创建选择框,获取用户选择后触发Cell 2执行 user_choice = z.select("f2", [("o1","1"), ("o2","2")], "o1") z.run('paragraph_1627463517803_1716289354')
Cell 2代码无需修改,即可正常实现选择后自动触发指定段落执行的需求。
方案2:升级版本
如果需要跨Note调用指定段落,可以升级Zeppelin到0.10.0及以上版本,该版本已经修复了z.run()双参数调用的空指针问题,官方文档的双参数调用写法可以正常运行。
方案3:自定义指定多段落执行
如果需要触发多个指定段落,可直接将多个段落ID依次传入z.run():
# 依次执行段落A、段落B、段落C z.run('paragraph_id_1') z.run('paragraph_id_2') z.run('paragraph_id_3')
内容的提问来源于stack exchange,提问作者Lakhvir
相关产品推荐
相关产品推荐

