在写 Apache Zeppelin 的笔记时,如果您的检查指针(inspection pointer)定位在某个表单(input form)上并且您尝试更改笔记段落的作用域,您可能会遇到类似以下错误的问题:
"Cannot read property 'name' of undefined TypeError: Cannot read property 'name' of undefined"
这是因为您的术语解释(glossary)或值设置(variable setting)中存在一些错误。以下代码示例演示了如何解决此问题:
%spark
// set up the variables that will be used in the input form val name = "John Doe" val age = 35
// create the form print("## Input\n\n") print("- Name: ") z.input("name", name) print("- Age: ") z.input("age", age)
// return the values entered in the input form z.get("name") z.get("age")
// end the input form print("\n\n## Output\n\n") print("- Name: " + z.get("name") + "\n") print("- Age: " + z.get("age") + "\n")
请注意,如果您在输入表单中为某个变量设置了一个空值,或者如果您在笔记段落之间使用了不同的变量名称,以下错误的代码将会产生。这对于检查解释器指针的位置并通过调用“zeppelinContext.get()”来获取值的用户来说是一个常见的问题:
"java.lang.NullPointerException at org.apache.zeppelin.interpreter.LazyOpenInterpreter.getValueFromDisplay(LazyOpenInterpreter.java:259) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:882) at org.apache.zeppelin.scheduler.Job.run(Job.java:188) at org.apache.zeppelin.scheduler.FIFOScheduler$