2017-01-04 3 views
0

У меня проблемы с ноутбуком scala apache, работающим на EMR. Следующий код прекрасно работает в записной книжке:Zeppelin не может проверить регулярное выражение из z.input динамической формы

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)) 

без выходных или выходных сигналов и только «ОШИБКА» рядом с кнопкой воспроизведения.

ответ

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); 
} 

Он возвращает объект, хотя реальный класс строк.

Смежные вопросы