2016-10-29 38 views
0

我正尝试在Azure HDInsight中使用正则表达式从日志行中提取信息来创建Spark应用程序(在Scala中)。 正则表达式是这样的:“500内部服务器错误”在Azure Hdinsight上的Apache笔记本Zeppelin

val patt1="""(?:(\w+) (\w+) (\d+) (\d+):(\d+):(\S+) (\w+) \[([^]]+)\] \((.*)\) - \[(\w+)\](?:\[(\w+)\])?\[(\w+)\]\[(\w+)\]\[\w+\]\[([^]]+)\](?:.*\[(.+)\]}))""".r 

的模式是正确的,因为如果我在Eclipse中一切正常使用Jupyter笔记本电脑,或工作在地方,我能够从日志中提取数据。

问题是,只是当我尝试使用齐柏林笔记本电脑,而不是Jupyter当我写的patt1作为字符串(不.R)给我这个奇怪的错误:

500 Internal Server Error 

我也试图导入斯卡拉.util.matching.Regex构建正则表达式之前,但错误是相同的。我认为有三分之一的报价或者齐柏林飞艇不允许的格式,但我不明白是什么。任何人都可以帮助我吗?我想使用Zeppelin而不是Jupyter,因为我认为可以更好地查看sparksql查询。

但是,如果我尝试写一个简单的模式为patt= """abc.*""".r没有错误。 (\ d)(\ w)等。Zeppelin scala interpret(Livy)不接受它们。编辑:我尝试了几次在齐柏林写正则表达式,它似乎是捕获组的问题(\ d)(\ w)等。 但jupyter中完全相同的正则表达式完美地工作。 我在新阶,也许我错过一些很ease.Please帮我

+0

粘贴异常stacktrace导致内部服务器错误 – pamu

+0

没有异常堆栈跟踪,只是这个错误信息 – Thanas

回答

0

解决:我刚刚更换所有的\\\和它完美的作品。 似乎Livy interpeter在scala正则表达式中不接受单个\,但接受\\,然后转换为\