Zeppelin无法从z.input动态表单检查正则表达式

时间:2017-01-04 16:33:43

标签: scala apache-spark emr amazon-emr apache-zeppelin

我在使用EMR运行的scala apache笔记本时遇到问题。以下代码在笔记本中运行良好:

var d1 = "2016-12-26"
var datePattern = "[0-9]{4}-[0-9]{2}-[0-9]{2}".r
println(datePattern.findFirstIn(d1))

返回

Some(2016-12-26)

以下内容如下:

var d1 = z.input("date (yyyy-mm-dd)", "12-25-2016")
println(d1)
println(d1.getClass)

返回:

12-25-2017
class java.lang.String

但以下失败:

var d1 = z.input("date (yyyy-mm-dd)", "12-25-2016")
var datePattern = "[0-9]{4}-[0-9]{2}-[0-9]{2}".r
println(datePattern.findFirstIn(d1))

没有输出或回溯,只有" ERROR"在播放按钮旁边。

1 个答案:

答案 0 :(得分:1)

这将起作用

var d1 = z.input("date (yyyy-mm-dd)", "2016-12-25").toString
var datePattern = "[0-9]{4}-[0-9]{2}-[0-9]{2}".r
println(datePattern.findFirstIn(d1))

z.input在ZeppelinContext中定义为

public Object input(String name, Object defaultValue) {
  return gui.input(name, defaultValue);
}

它返回一个Object,尽管真正的类是String。