FILTEROBJECT 函式

依據指定鍵值篩選物件資料類型資料欄中的鍵和值。
  • 物件資料類型的單一欄位值必須有專屬鍵,但值可以重複。
  • 鍵/值組合不保證會依特定順序列出。
  • 詳情請參閱物件資料類型一文。

基本用法

物件常值參照範例:

derive type:single value:FILTEROBJECT('{"q":"hello","r","there":"q","world"}', 'q') as:'q'

輸出:產生新的 q 資料欄,其中包含 q 鍵的鍵/值組合物件:

{"q":["hello", "world"]}

資料欄參照範例:

derive type:single value:FILTEROBJECT(myObjects, '[k1,k2]') as:'k-values'

輸出:產生新的 k-values 資料欄,其中包含 k1k2 鍵所有例項的鍵/值組合物件。

語法

derive type:single value:FILTEROBJECT(obj,'keys')

引數是否必要?資料類型說明
obj_col字串或物件要篩選的資料欄名稱、傳回物件的函式,或物件常值
keys陣列代表待篩選鍵的陣列。各元素可為字串、傳回字串的函式,或字串值資料欄的參照。

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

obj_col

物件常值、物件資料欄名稱,或會傳回物件的函式 (傳回的物件有您要擷取至陣列的鍵)。

使用須知:

是否必要?資料類型示例值
物件常值、函式或資料欄參照myObj

keys

這個參數包函字串陣列,每個字串代表一個鍵,其值將與鍵做為函式的輸出。

  • 如果是單一鍵,這個值可以是一般字串值。
  • 如果是多個鍵,這個值為字串值陣列。

使用須知:

是否必要?資料類型示例值
字串或陣列['key1','key2','key3']

範例

範例:剖析網址中的查詢參數

本範例說明如何使用下列函式,擷取網址中的元件部分:

  • DOMAIN - 從網址中擷取網域值。請參閱 DOMAIN 函式
  • SUBDOMAIN - 擷取通訊協定 ID 之後與網域值之前的第一個群組。請參閱 SUBDOMAIN 函式
  • HOST - 傳回網址中的完整主機值。請參閱 HOST 函式
  • SUFFIX - 擷取網址的後置字串。請參閱 SUFFIX 函式
  • URLPARAMS - 從網址中擷取查詢參數和值。請參閱 URLPARAMS 函式
  • FILTEROBJECT - 篩選物件值,只顯示指定鍵的元素。請參閱 FILTEROBJECT 函式一文。

來源:

您的資料集包含下列網址值:

URL
www.example.com
example.com/support
http://www.example.com/products/
http://1.2.3.4
https://www.example.com/free-download
https://www.example.com/about-us/careers
www.app.example.com
www.some.app.example.com
some.app.example.com
some.example.com
example.com
http://www.example.com?q1=broken%20record
http://www.example.com?query=khakis&app=pants
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wrist

轉換:

將上述資料匯入應用程式時,系統會將資料欄辨識為網址。所有值都會登錄為有效值,即使是 IPv4 位址也有效。

如何擷取網域及子網域值:

derive type:single value: DOMAIN(URL) as: 'domain_URL'

derive type:single value: SUBDOMAIN(URL) as:'subdomain_URL'

derive type:single value: HOST(URL) as:host_URL'

derive type:single value: SUFFIX(URL) as:'suffix_URL'

您可以在下列轉換指令中使用 Cloud Dataprep 模式,將通訊協定 ID (如果有) 擷取到新資料欄:

extract col:URL on:`{start}%*://`

如要清理此資料,您可以將此資料欄重新命名為 protocol_URL

如要擷取路徑值,您可以使用下列規則運算式:

注意:規則運算式被視為是用於模式比對的開發人員層級方法。請謹慎使用這些運算式。請參閱文字比對一文。

extract col: URL on: /[^*:\/\/]\/.*$/

上述轉換指令擷取了太多網址。如果您將資料欄重新命名為 path_URL,就可以使用下列規則運算式來清理資料:

extract col:path_URL on:/[!^\/].*$/


刪除 path_URL 資料欄,並將 path_URL1 資料欄重新命名為已刪除的資料欄。然後使用以下指令︰

derive type:single value: URLPARAMS(URL) as: 'urlParams'

如果只要查看 q1 參數的值,您可以新增以下指令:

derive type:single value: FILTEROBJECT(urlParams,'q1') as: 'urlParam_q1'

結果:

為了便於顯示,結果資料表會分成獨立的資料欄組合。

資料欄組合 1:

URLhost_URLpath_URL
www.example.comwww.example.com
example.com/supportexample.com/support
http://www.example.com/products/www.example.com/products/
http://1.2.3.41.2.3.4
https://www.example.com/free-downloadwww.example.com/free-download
https://www.example.com/about-us/careerswww.example.com/about-us/careers
www.app.example.comwww.app.example.com
www.some.app.example.comwww.some.app.example.com
some.app.example.comsome.app.example.com
some.example.comsome.example.com
example.comexample.com
http://www.example.com?q1=broken%20recordwww.example.com
http://www.example.com?query=khakis&app=pantswww.example.com
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wristwww.example.com

資料欄組合 2:

網址protocol_URLsubdomain_URLdomain_URLsuffix_URL
www.example.com wwwexamplecom
example.com/support examplecom
http://www.example.com/products/http://wwwexamplecom
http://1.2.3.4http://
https://www.example.com/free-downloadhttps://wwwexamplecom
https://www.example.com/about-us/careershttps://wwwexamplecom
www.app.example.com www.appexamplecom
www.some.app.example.com www.some.appexamplecom
some.app.example.com some.appexamplecom
some.example.com someexamplecom
example.com examplecom
http://www.example.com?q1=broken%20recordhttp://wwwexamplecom
http://www.example.com?query=khakis&app=pantshttp://wwwexamplecom
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wristhttp://wwwexamplecom

資料欄組合 3:

網址urlParamsurlParam_q1
www.example.com
example.com/support
http://www.example.com/products/
http://1.2.3.4
https://www.example.com/free-download
https://www.example.com/about-us/careers
www.app.example.com
www.some.app.example.com
some.app.example.com
some.example.com
example.com
http://www.example.com?q1=broken%20record{"q1":"broken record"}{"q1":"broken record"}
http://www.example.com?query=khakis&app=pants{"query":"khakis","app":"pants"}
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wrist{"q1":"broken record", "q2":"broken tape",
"q3":"broken wrist"}
{"q1":"broken record"}

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

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

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