kettle——入门操作-行列转换(行转列,字段拆分)
1、Row Normaliser,將一行多列數據轉換為多行一列數據。
輸入數據流:
計算器配置如下:
與計算器相連接的excel輸出如下:
Row Normaliser,設置如下,
?
與Row Normaliser連接的Excel輸入如下
?
?2、Split field to rows 字段拆分,一個單元拆分成多行
輸入流字段:
Split field to rows 設置:
結果展示
3、拆分字段,將一個字段拆分成多個,一個字段拆分成多列
Generate Rows輸入流,
拆分字段,設置,一個單元拆分成三列
拆分字段連接的Excel輸出如下,一行三列轉換成三行一列
Row Nomaliser配置,及Excel輸出,
4、行轉列,一列多行轉變為多列一行,前面xml部分已經用過。
?
總結: 行轉列:一列多行轉變為多列一行,需要分組字段及標識,以xml解析為典型
Row Normaliser:將一行多列數據轉換為多行一列數據。
Split field to rows 字段拆分,一個單元拆分成多行。
? ?拆分字段,一個單元拆分成三列
?
kettle中denormalizer(列轉行)的使用
需要列轉行的數據分為兩種:有主鍵和無主鍵,先說無主鍵的
轉以前的內容
轉以后的內容
看到了吧,轉過來了,好來張整體流程圖
開始分析:
第一個圖標打開后為
這是第一步里面主要的一步,這里配置好了就可以進行第二步了。
因為沒有主鍵,所以要給城市那一列添加一個相同的主鍵,這樣數據在轉成行的時候就可以轉到同一行了,如果主鍵不同,轉成行后,每一個主鍵為一行,這不是我們想要的。
打開列轉行的界面為
圖中的dummy是我們前一步添加的常量,關鍵字段選擇城市,關鍵字段值就為城市的value,數據字段為人數的key,所謂目標字段就是在轉成行以后你希望看到的名字。
打開結果輸出圖標
好了,到這里就都配置完了,點執行按鈕,你就會看到文中開頭的結果了。
有主鍵的就不說了,那個比無主鍵的要簡單,因為有主鍵的數據直接轉就行,如果不明白可以留言。
轉載于:https://www.cnblogs.com/pejsidney/p/8984133.html
總結
以上是生活随笔為你收集整理的kettle——入门操作-行列转换(行转列,字段拆分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL SERVER逆向工程将数据库导入
- 下一篇: 58同城沈剑:好的架构是进化来的,不是设