Spark應用 根據新df更新舊df

2022-05-06 13:15:10 字數 1123 閱讀 2061

1

//主鍵字段保持不變,再轉換回來

2 var columnmap:map[string, string] =map()

3for(key

6 // keysopt:主鍵字段構成的陣列

7 var columnbackmap:map[string, string] =map()

8for(key

13 val convertion = columnname.map(key => key + " as " + key + "s") // columnname:包含該df中所有的欄位名稱

14 val df1_plus = df1.selectexpr(convertion.map(t => columnmap.getorelse(t, t)): _*) //

修改df1除主鍵之外的字段,末尾加s

15//df關聯

16 val df3 =df1_plus.join(df2, keysopt)

1718 val df4 = df3.select(columnname.map(c => df2(c)): _*)

19//

重新獲取df3中屬於df1的字段

20 val df1_column_back =df1_plus.columns

21 val df5 = df3.select(df1_column_back.map(c => df1_plus(c)): _*)

22//

把轉換的欄位名稱再轉換回來

23 val df5_plus = df1.selectexpr(df1_column_back.map(t => columnbackmap.getorelse(t, t)): _*) //

去掉末尾之前新增的s

24//

合併25 val union_data = df4.union(df5_plus)

結果:在非主鍵欄位名稱末尾新增s

去掉非主鍵欄位名稱末尾新增的s

Spark 聚類應用

spark 機器學習庫提供了包括聚類,分類,回歸,協同過濾,維度約簡等。使用 spark 機器學習庫來做機器學習工作,可 以說是非常的簡單,通常只需要在對原始資料進行處理後,然後直接呼叫相應的 api 就可以實現。spark ml 提供了乙個基於 dataframe 的機器學習工作流式 api 套件...

Spark的應用場景

spark的生態圈 1.spark的設計遵循 乙個軟體棧滿足不同應用場景 的理念,逐漸形成一套完整的生態系統 2.spark可以部署在資源管理器yarn之上,提供一站式大資料解決方案 3.spark所提供的的生態系統可對應以下三種場景 複雜的批量資料處理 通常時間跨度在數十分鐘到數小時之間 基於歷史...

Spark之根據日誌對IP位置統計

根據ip計算訪問者歸屬地,按照省計算訪問次數,將計算好的結果寫入mysql中 日誌檔案型別 20090121000133586141000 117.101.219.241 12.zgwow.com launcher index.htm mozilla 4.0 compatible msie 7.0 ...