Unpivot 轉換

注意:轉換屬於基礎程式語言的一部分,使用者無法直接存取。本篇文章的內容僅供參考。

將一或多個資料欄合併至索引鍵和值資料欄,將資料重新塑形。索引鍵是輸入資料欄的名稱,而值資料欄是來源中的儲存格值。

資料列可以重複,一列代表一個輸入資料欄。

unpivot 資料欄可以在同一轉換中套用至多個資料欄。所有資料欄會解除透視為相同的 keyvalue 資料欄。將此轉換指令套用至這兩個資料欄時,資料集中的資料列數會加倍。

這個轉換與 pivot 轉換的作用相反,用來將一組資料欄值轉換成不同的資料欄。請參閱 Pivot 轉換

基本用法

單一資料欄或多資料欄範例:

您可以指定單一資料欄或多組以逗號分隔的資料欄。

unpivot col: FirstName, MiddleInitial

輸出:FirstNameMiddleInitial 資料欄中的值轉換成不同的 keyvalue 資料欄。

資料欄範圍範例:

您也可以使用波浪號 (~) 運算子指定特定範圍的資料欄:

unpivot col:Column1~Column20

輸出:Column1Column20 之間資料欄中的所有值轉換成 keyvalue 資料欄。

參數

unpivot col: column_ref [groupEvery: int_num]

符記是否必要?資料類型說明
unpivot轉換轉換名稱
col字串一或多個來源資料欄的名稱
groupEvery字串如果指定,此參數會定義每個產生的資料欄所要儲存的個別鍵/值組合數。預設值是 1

如要進一步瞭解語法標準,請參閱語言文件語法附註

col

識別要套用轉換的一或多個資料欄,您可以指定一或多個資料欄。

如何指定多個資料欄:

  • 以逗號分隔多個不同的資料欄名稱。資料欄名稱值要區分大小寫。
  • 在適用情況下,可使用波浪號 (~) 指定某一範圍的值。

使用須知:

是否必要?資料類型
字串 (資料欄名稱)

groupEvery

指定在解除透視後要產出的輸出鍵/值組合資料欄的數目。

使用這個選用參數可以在輸出內容中建立多組鍵/值組合資料欄。在 col 參數中列出的資料欄會依序併入每一對輸出鍵/值組合資料欄。系統將記錄中的所有鍵/值組合資料欄填滿後,會將下一個資料欄會併入下一筆記錄的第一個鍵/值組合資料欄。

此值根據預設為 1,表示轉換指令所指定的每一個資料欄都會在一對鍵/值組合資料欄中顯示為新記錄。

使用須知:

是否必要?資料類型
整數 (正數)

範例

範例 - 基本解除透視

來源:

productNameproductColorproductSize
WhizbangredM
Whizbangred, blueL
WhizbanggreenM
BangwhizredS
BangwhizblueM
BangwhizredS

轉換:

建立標頭後,如有必要,新增下列轉換指令:

unpivot col:productColor

結果:

productNameproductSizekeyvalue
WhizbangMproductColorred
WhizbangLproductColorred, blue
WhizbangMproductColorgreen
BangwhizSproductColorred
BangwhizMproductColorblue
BangwhizSproductColorred

擴充:

請注意值的每一個例項如何產生個別的資料列,在其中併入重複值。針對單一資料欄 unpivot,此轉換會產生與來源相同的列數。

  • 由於系統將值視為字串,因此 red, blue 被視為一個值。

現在,請編輯您剛剛新增的轉換。您可以替換成下列指令,其中含有 productSize 索引鍵作為轉換指令的一部分:

unpivot col:productColor,productSize

結果:

productNamekeyvalue
WhizbangproductColorred
WhizbangproductSizeM
WhizbangproductColorred, blue
WhizbangproductSizeL
WhizbangproductColorgreen
WhizbangproductSizeM
BangwhizproductColorred
BangwhizproductSizeS
BangwhizproductColorblue
BangwhizproductSizeM
BangwhizproductColorred
BangwhizproductSizeS

資料列索引鍵會依據轉換中來源資料欄的指定順序輪流交替。由於此轉換指定兩個資料欄,所以鍵/值組合數會加倍,造成資料集的列數為來源的兩倍。

範例 - 使用 groupEvery 的基礎透視

在前一範例中,依下列指令修改 unpivot 轉換:

unpivot col:productColor,productSize groupEvery:2

結果:

productNamekey1value1key2value2
WhizbangproductColorredproductSizeM
WhizbangproductColorred, blueproductSizeL
WhizbangproductColorgreenproductSizeM
BangwhizproductColorredproductSizeS
BangwhizproductColorblueproductSizeM
BangwhizproductColorredproductSize

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁