問題
如果您同時運行多個Apache Spark JAR作業,有些運行可能會失敗,並出現以下錯誤:
沒有找到表或視圖:xxxxxxx;線路1 pos 48
導致
此錯誤是由Scala中的一個錯誤引起的。當對象擴展時應用程序,它的瓦爾字段不再是不可變的,可以在主要方法被調用。如果多次運行JAR作業,則a瓦爾包含DataFrame的字段可以在不經意間更改。
因此,當任何一個並發運行結束時,它會清除其他運行的臨時視圖。Scala issue 11576提供了更多細節。
解決方案
要解決此錯誤,請調用main ()顯式方法。舉個例子,如果你有類似這樣的代碼:
%scala對象MainTest擴展應用程序{…}
您可以用不擴展的代碼替換它應用程序:
%scala對象MainTest {def main(args: Array[String]) {......}}