【问题标题】:"500 Internal Server Error" Apache notebook Zeppelin on Azure HdinsightAzure Hdinsight 上的“500 内部服务器错误”Apache 笔记本 Zeppelin
【发布时间】:2017-03-12 07:13:33
【问题描述】:

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

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

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

问题只是当我尝试使用 Zeppelin 笔记本而不是 Jupyter 时,当我将 patt1 写为字符串(不带 .r)时,给了我这个奇怪的错误:

500 Internal Server Error

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

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

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

【问题讨论】:

  • 粘贴导致内部服务器错误的异常堆栈跟踪
  • 没有异常stacktrace,只有这个错误信息

标签: regex scala apache-spark jupyter apache-zeppelin


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-10-28
    • 2015-09-26
    • 2022-10-17
    • 2015-02-12
    • 2015-11-22
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多