FME處理表格轉置的3種方式

近期看到很多人都在諮詢表格轉置方面的問題,實際上在之前的博客中,關於數據處理的流程有涉及到通過FME如何進行表格數據的轉置處理。既然很多人都在諮詢轉置的問題,這裏就形成一篇定向博客,爲大家統一的講解FME中處理表格轉置的幾種方法。

1、原始數據與實現成果

2、FME處理表格轉置的方式:

(1)AttributePivoter

(2)Pythoncaller

(3)AttributeTransposer

 

AttributePivoter

(1) 通過AttributePivoter轉換器實現數據的轉置,通過Dynamic動態流控制數據輸出的結構。

首先想要實現數據轉置,在FME裏可直接採用AttributePivoter轉換器。以測試數據爲例,測試數據包括的屬性字段:“項目編號”字段爲轉置的分類字段;“環節”字段爲轉置後想要輸出的屬性字段名稱;“日期”字段爲轉置後的屬性值。按照測試數據進行數據轉置,AttributePivoter轉換器的設置如下:

AttributePivoter轉換器不僅可以對數據進行轉置處理,同時也可對數據進行統計(如上圖第4部分參數的內容),如果您在轉置的過程中無需進行統計的處理,可以將“Include Grand Total Columns”參數設置爲“NO”,即可不輸出統計列。

處理後得到的數據如下:

(2)結構輸出

根據以上AttributePivoter轉換器處理數據的成果大家可以看到,轉置之後是不會自動將成果屬性字段暴露爲用戶屬性。那麼有些用戶可能會有疑問,輸出的時候如何輸出成果字段?

入門一點的方法,可以添加AttributeExposer轉換器把需要輸出的屬性字段都暴露出來再輸出。

再通過靜態輸出到excel表等數據格式中

以上的方式可以得到最終轉置後的成果,但是FME經驗玩家會發現這種方式不智能,在AttributeExposer轉換器時需要手動去設置需要暴露的屬性字段,遇到屬性字段非常多的時候,這種輸出方式過於費時。

大家肯定要疑問,如何有效的解決這種問題?

我們不妨再來分析一下前面的中間結果,對AttributePivoter轉換器成果的結果再進行分析,發現本身AttributePivoter轉換器轉置後生成成果中會自動創建schema屬性結構。

不由想到,動態輸出方式中支持schema結構輸出的方式,是否可以按照動態輸出,選擇scheme結構的方式動態的保存數據結構。

經過測試,動態輸出通過schema保存結構。這種方式解決了AttributeExposer轉換器手動暴露字段的煩惱。

當然轉置的處理除了AttributePivoter轉換器外,還可以採用以下兩種方式進行:

 

Pythoncaller

用PythonCaller轉換器調用Python代碼來實現。

https://img-blog.csdnimg.cn/20190730140611467.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZtZWNoaW5h,size_16,color_FFFFFF,t_70

之前的“FME實現三調地類變化流量表製作”的博客裏用的就是PythonCaller轉換器編寫代碼的方式,來完成二調數據結構與三調數據結構不一致時,數據的轉換問題。

 

AttributeTransposer

FME Hub是廣大FME愛好者自行封裝,分享給大家使用的共享平臺。AttributeTransposer爲FME Hub所提供的轉換器,能夠解決簡單的表格轉置問題。

如上圖所示,如果數據無需進行分類是,用AttributeTransposer轉換器可以直接將表格進行轉置,但如果原始數據存在分類,則直接使用AttributeTransposer轉換器無法達到正確的效果。

以原始演示數據爲例:

涉及分類的源數據樣式無法用AttributeTransposer轉換器直接實現。

總結,千人千面,數據是變化多端的,處理方式也是變化多端的,大家可以根據自己的需要進行選擇,本篇博客轉置的處理方式就介紹到這裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章