2016-10-29 69 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正則表達式中不接受單個\,但接受\\,然後轉換爲\