有時錯誤的一部分
“org.apache.spark。火花Exception: Exception thrown in awaitResult:".
誤差源的步驟中,我們提取第二次行,數據更新。我們可以數行,但我們不能顯示或寫成一個表。
我們的方法是:
我們進口數據一天——500.000行和所需的完整描述信息105列,但我們減少表已經列的最小數字8。
我們得到新的數據和更新。
而不是覆蓋現有行與我們更新我們想添加增量變化對現有的行。
我們導入一個初始表。
我們運行更新/附加algorithmus一旦成功,所有加入,聯盟和寫命令的工作。
我們的表模式是:
前五列和最後一列將被稱為維度,其他基地增量計算:
/ / statusIdsChanged隻包含Id列val statusIdsChanged = {val statusRowsReduced = sqlContext.table (BASE_TABLE_NAME) .select statusRowsReduced (" Id ")。加入(updatedBetId statusRowsReduced (" Id ") = = = updatedBetId (“updateId”)) .drop (updateId)} val狀態= sqlContext.table (BASE_TABLE_NAME) status.count () def splitNamesAt (colName: org.apache.spark.sql。數據集(行),splitName:字符串)= {val關口= colName。列cols.splitAt (cols.indexOf (splitName)}瓦爾(dimensionsStatus incrementsStatus) = splitNamesAt(地位、“Id”) / /以下值誤差源。val statusRowsChanged =狀態。加入(statusIdsChanged“Id”) .select (incrementsStatus.map (col): _ *) .drop (“deliveryDay”)
@activescott是的,我們做到了。我們發現在我們的應用程序中一些數據類型引起的問題。此外,讀取數據時發生錯誤在轉換後火花——例如,但並不總是在同一點在您的代碼中。原因是你如何寫你的數據。我們克服這個問題如下:
1。檢查數據類型我們基本數據將自動澆築在“加載火花”一步。例如在我們的例子中讀取sql整數類型引發了問題? !
2。照顧你如何激發函數或udf的改變數據類型。例如我們遇到錯誤因為我們的小數精度或等級變化。
謝謝Lleido。我最終發現我改變了分區DataFrame的模式,我不經意間,我縮小一個列的類型長到一個整數。雖然很明顯的原因問題,事後它起初非常難以解決,因為它是不一致的。最後,我發現如果我打開“mergeSchema”選項強製模式合並所有分區,將至少清單問題立即而不是斷斷續續的不同部分的代碼運行(舊保存和訪問不同的數據幀)。合並模式:
sqlContext.read。選項(“mergeSchema”,真正的).parquet (…)