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