Azure Hdinsight 上的“500 内部服务器错误”Apache notebook Zeppelin

"500 Internal Server Error" Apache notebook Zeppelin on Azure Hdinsight

我正在尝试在 Azure HDInsight 中编写一个 spark 应用程序(在 scala 中)以使用正则表达式从日志行中提取信息。 正则表达式是这样的:

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

模式是正确的,因为如果我使用 Jupyter notebook,或者在 eclipse 中本地工作,一切正常,我能够从日志中提取数据。

问题是当我尝试使用 Zeppelin notebook 而不是 Jupyter 将 patt1 写成字符串(没有 .r)时给我这个奇怪的错误:

500 Internal Server Error

我之前也尝试导入 scala.util.matching.Regex 来构建正则表达式,但错误是一样的。我认为三重引号或齐柏林飞艇不允许的格式有些东西,但我不明白是什么。任何人都可以帮助我吗?我想使用 Zeppelin 而不是 Jupyter,因为我认为可以更好地可视化 sparksql 查询。

但是如果我尝试将一个简单的模式写成 patt= """abc.*""".r 就没有错误。

编辑:我尝试了几次在 Zeppelin 中编写正则表达式,似乎问题在于将组捕获为 (\d) (\w) 等。Zeppelin scala interpret(Livy) 不接受它们。 但相同的正则表达式在 jupyter 中完美运行。 我是 scala 的新手,也许我很想念一些东西 ease.Please 帮助我

已解决:我刚刚将所有 \ 替换为 \ 并且效果很好。 似乎 Livy interpeter 在 scala 正则表达式中不接受单个 \ 但接受 \ 然后转换为 \.