《数据清洗》第六章课后操作
文章目錄
- 前言
- 一、數據粒度轉換
- 二、進行商務規劃計算
- 注意
前言
現有文本文件personnel_data.txt,包含id、name、id_number、household_register和salary,具體內容如下:
一、數據粒度轉換
(1)打開Kettle工具,新建轉換
使用Kettle工具,創建一個轉換generalization,并添加文本文件輸入控件、表輸入控件、字段選擇控件、排序記錄控件、記錄集連接控件、表輸出控件以及Hop跳連接線,具體效果如圖6-1所示。
(2)配置文本文件輸入控件
雙擊圖6-1中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data.txt文件;單擊【增加】按鈕,將要抽取的personnel_data.txt文件添加到generalization轉換中。
單擊“內容”選項卡,在分隔符處清除默認分隔符“;”,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符;取消勾選“頭部”復選框。“內容”選項卡的配置具體效果如圖6-3所示。(若預覽出現亂碼,則可以將編碼方式設置為GBK或UTF-8)
在圖6-3中,單擊“字段”選項卡,根據personnel_data.txt文件的內容添加對應的字段名稱,并指定數據類型。“字段”選項卡的配置,如圖6-4所示。
單擊【確定】按鈕,完成“文本文件輸入”控件的配置。
(3)配置字段選擇控件
雙擊圖6-1中的“字段選擇”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖6-5所示。
在圖6-5中,單擊【確定】按鈕,完成“字段選擇”控件的配置。
(4)配置排序記錄控件
雙擊圖6-1中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段household_register,對其進行排序,具體如圖6-6所示。
在圖6-6中,單擊【確定】按鈕,完成“排序記錄”控件的配置。
(5)配置表輸入控件
雙擊圖6-1中的“表輸入”控件,進入“表輸入”界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,
在圖6-75中的SQL框中編寫SQL語句,用于查詢city數據表(注:該表需提前創建,)中字段city和pid的數據,用于與personnel_data.txt文件中household_register字段進行合并連接,具體如圖6-9所示。
在圖6-9中,單擊【確定】按鈕,完成“表輸入”控件的配置。
(6)配置排序記錄2控件
雙擊圖6-1中的“排序記錄 2”控件,進入“排序記錄”界面,在“字段”框中添加字段city,并對其進行排序,具體如圖6-10所示。
在圖6-10中,單擊【確定】按鈕,完成“排序記錄2”控件的配置。
(7)配置記錄集連接控件
雙擊圖6-1中的“記錄集連接”控件,進入“合并排序”界面,在“第一個步驟”處的下拉框中選擇“排序記錄”,“第二個步驟”處的下拉框中選擇“排序記錄2”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是household_register和city;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖6-11所示。
在圖6-11中,單擊【確定】按鈕,完成記錄集連接控件的配置。
(8)配置字段選擇2控件
雙擊圖6-1中的“字段選擇2”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,這里添加的是記錄集連接流中的字段household_register和pid,具體如圖6-12所示。
在圖6-12中,單擊【確定】按鈕,完成“字段選擇2”控件的配置。
(9)配置排序記錄3控件
雙擊圖6-1中的“排序記錄 3”控件,進入“排序記錄”界面,在“字段”框中添加字段pid,并對其進行排序,具體如圖6-13所示。
在圖6-13中,單擊【確定】按鈕,完成排序記錄3控件的配置。
(10)配置表輸入2控件
雙擊圖6-1中的“表輸入2”控件,進入“表輸入2”界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖6-15所示。
在圖6-14中的SQL框中編寫SQL語句,用于查詢provincial數據表(注:該表需提前創建)中字段Provincial和pid的數據,用于與household_register字段進行合并連接,具體如圖6-16所示。
在圖6-16中,單擊【確定】按鈕,完成“表輸入2”控件的配置。
(11)配置排序記錄4控件
雙擊圖6-1中的“排序記錄 4”控件,進入“排序記錄”界面,在“字段”框中添加字段pid,并對其進行排序,具體如圖6-17所示。
在圖6-17中,單擊【確定】按鈕,完成“排序記錄4”控件的配置。
(12)配置記錄集連接2控件
雙擊圖6-1中的“記錄集連接2”控件,進入“合并排序”界面,在“第一個步驟”處的下拉框中選擇“排序記錄3”,“第二個步驟”處的下拉框中選擇“排序記錄4”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是pid;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖6-18所示。
在圖6-18中,單擊【確定】按鈕,完成“記錄集連接2”控件的配置。
(13)配置字段選擇3控件
雙擊圖6-1中的“字段選擇3”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,這里添加的是記錄集連接2流中的字段household_register和Provincial,具體如圖6-19所示。
在圖6-19中,單擊【確定】按鈕,完成“字段選擇3”控件的配置。
(14)配置表輸出控件
雙擊圖8-1中的“表輸出”控件,進入“表輸出”配置界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖8-20所示
在圖6-20中,單擊目標表右側的【瀏覽】按鈕,選擇輸出的目標表,即臨時數據表personnel;勾選“指定數據庫字段”的復選框,具體如圖8-21所示,單擊【輸入字段映射】按鈕,讓Kettle自動實現映射。
(15)打開Kettle工具,新建轉換
使用Kettle工具,創建一個轉換generalization_merge,并添加表輸入控件、字段選擇控件、排序記錄控件、記錄集連接控件、文本文件輸出控件以及Hop跳連接線,具體效果如圖6-25所示。
(16)配置表輸入控件
雙擊圖6-25中的“表輸入”控件,進入“表輸入”界面,如圖6-7所示。
在圖6-26中,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖6-27所示。
在圖6-26中的SQL框中編寫SQL語句,用于查詢數據表personnel中的數據,具體如圖6-28所示。
在圖6-28中,單擊【確定】按鈕,完成“表輸入”控件的配置。
(17)配置字段選擇控件
雙擊圖6-25中的“字段選擇”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖6-29所示。
在圖6-29中,單擊【確定】按鈕,完成“字段選擇”控件的配置。
(18)配置排序記錄控件
雙擊圖6-25中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段id,對其進行排序,具體如圖6-30所示。
在圖6-30中,單擊【確定】按鈕,完成“排序記錄”控件的配置。
(19)配置文本文件輸入控件
雙擊圖6-25中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data.txt文件;單擊【增加】按鈕,將要抽取的personnel_data.txt文件添加到generalization_merge轉換中,如圖6-31所示。
在圖6-31中,單擊“內容”選項卡,在分隔符處清除默認分隔符“;”,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符;取消勾選“頭部”復選框。“內容”選項卡的配置具體效果如圖6-32所示。
在圖6-32中,單擊“字段”選項卡,根據文本文件personnel_data.txt的內容添加對應的字段名稱,并指定數據類型。“字段”選項卡的配置,如圖6-33所示。
在圖6-33中,單擊【確定】按鈕,完成“文本文件輸入”控件的配置。
(20)配置字段選擇2控件
雙擊圖6-25中的“字段選擇2”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖6-34所示。
在圖6-34中,單擊【確定】按鈕,完成“字段選擇”控件的配置。
(21)配置排序記錄2控件
雙擊圖6-25中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段id,對其進行排序,具體如圖6-35所示。
在圖6-35中,單擊【確定】按鈕,完成“排序記錄2”控件的配置。
(22)配置記錄集連接控件
雙擊圖6-25中的“記錄集連接”控件,進入“合并排序”界面,在“第一個步驟”處的下拉框中選擇“排序記錄”,“第二個步驟”處的下拉框中選擇“排序記錄2”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是id;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖6-36所示。
在圖6-36中,單擊【確定】按鈕,完成“記錄集連接”控件的配置。
(23)配置字段選擇3控件
雙擊圖6-25中的“字段選擇3”控件,進入“字段選擇”界面,在“選擇和修改”選項卡處添加字段名稱,并將字段household_register_new改為household_register,具體如圖6-37所示。
圖6-37 配置字段選擇3控件
在圖6-37中,單擊【確定】按鈕,完成“字段選擇3”控件的配置。
(24)配置文本文件輸出控件
雙擊圖6-25中的“文本文件輸出”控件,進入“文本文件輸出”界面,單擊“文件名稱”右側的【瀏覽】按鈕,選擇輸出文件,即文本文件personnel_data_new,如圖6-38所示;
單擊“內容”選項卡,進入“內容”界面,清除分隔符處的默認分隔符,單擊【插入Tab】按鈕,插入Tab分隔符。并在編碼處的下拉框選擇“UTF-8”編碼,如圖6-39所示;
單擊“字段”選項卡,進入“字段”界面,添加要輸出的字段,如圖6-40所示。
在圖6-40中,單擊【確定】按鈕,完成“文本文件輸出”控件的配置。
(25)打開Kettle工具,新建作業
使用Kettle工具,創建一個作業generalization,并添加Start控件、轉換控件、成功控件以及Hop作業項連接線,具體效果如圖6-41所示。
(26)配置轉換控件
雙擊圖6-41中的“轉換”控件,進入“轉換”界面,單擊“Transformations”處的【瀏覽】按鈕,選擇添加轉換generalization,具體如圖6-42所示。
在圖6-42中,單擊【確定】按鈕,完成“轉換”控件的配置。
(27)配置轉換2控件
雙擊圖6-41中的“轉換2”控件,進入“轉換”界面,單擊“Transformations”處的【瀏覽】按鈕,選擇添加轉換generalization_merge,具體如圖6-43所示。
在圖6-43中,單擊【確定】按鈕,完成“轉換2”控件的配置。
(28)運行作業generalization
單擊作業工作區頂部的按鈕,運行作業generalization,實現將文本文件personnel_data.txt中字段為household_register的數據統一成省份(直轄市),并輸出到文本文件personnel_data_new.txt中。運行作業generalization的效果如圖6-44所示。
從圖6-44中的執行結果來看,即每個控件的右上角均有“√”,則說明作業generalization執行成功。
(29)查看文本文件personnel_data_new.txt中的數據
通過文本編輯器工具,查看文本文件personnel_data_new.txt中的數據,查看結果如圖6-45所示。
二、進行商務規劃計算
(1)打開Kettle工具,新建轉換
使用Kettle工具,創建一個轉換monthly_salary,并添加文本文件輸入控件、增加常量控件、計算器控件、文本文件輸出控件以及Hop跳連接線,具體效果如圖6-46所示。
(2)配置文本文件輸入控件
雙擊圖6-46中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data_new.txt文件;單擊【增加】按鈕,將要抽取的personnel_data_new.txt文件添加到轉換monthly_salary中。
在圖6-47中,單擊“內容”選項卡,在分隔符處清除默認分隔符“;”,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符。“內容”選項卡的配置具體效果如圖6-48所示。
在圖6-48中,單擊“字段”選項卡,根據personnel_data_new.txt文件的內容添加對應的字段名,并指定數據類型。“字段”選項卡的配置,如圖6-49所示。
在圖6-49中,單擊【確定】按鈕,完成“文本文件輸入”控件的配置。
(3)配置增加常量控件
雙擊圖6-46中的“增加常量”控件,進入“增加常量”界面,在字段框中添加一個字段days,并給定一個值22。增加常量控件的配置,如圖6-50所示。
在圖6-50中,單擊【確定】按鈕,完成“增加常量”控件的配置。
(4)配置計算器控件
雙擊圖6-46中的“計算器”控件,進入“計算器”界面,在字段框中添加一個字段monthly_salary,用于存儲月薪,該字段是由字段days和salary進行相乘所得。計算器控件的配置,如圖6-51所示。
在圖6-51中,單擊【確定】按鈕,完成“計算器”控件的配置。
(5)配置文本文件輸出控件
雙擊圖6-46中的“文本文件輸出”控件,進入“文本文件輸出”界面,單擊“文件名稱”右側的【瀏覽】按鈕,選擇輸出文件,即文本文件personnel_data_monthly_salary,如圖6-52所示;單擊“內容”選項卡,進入“內容”界面,清除分隔符處的默認分隔符,單擊【插入Tab】按鈕,插入Tab分隔符,并在編碼處的下拉框選擇“UTF-8”編碼,如圖6-53所示;
單擊“字段”選項卡,進入“字段”界面,添加要輸出的字段,如圖6-54所示。
在圖6-54中,單擊【確定】按鈕,完成“文本文件輸出”控件的配置。
(6)運行轉換monthly_salary
單擊轉換工作區頂部的運行按鈕,運行轉換monthly_salary,實現將文本文件personnel_data_new.txt中字段為salary的數據進行商務規則計算,即計算每個人的月薪(以22天工作日計算),最終輸出到文本文件personnel_data_monthly_salary.txt中。
從圖6-55中的執行結果來看,即每個控件的右上角均有“√”,則說明轉換monthly_salary執行成功。
(7)查看文本文件personnel_data_monthly_salary.txt中的數據
通過文本編輯器工具,查看文本文件personnel_data_monthly_salary.txt中的數據,查看結果如圖6-56所示。
從圖6-56可以看出,文本文件personnel_data_monthly_salary.txt中字段為monthly_salary存儲著月薪。
注意
此題中的所有有關輸入的表或文本文檔,里面的數據都要自己輸入,要不然輸出值會為空值。
總結
以上是生活随笔為你收集整理的《数据清洗》第六章课后操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于田忌赛马
- 下一篇: RFID 有源,半源和无源的区别