MATCHES 函式

如果值含有字串或模式,則傳回 true。待搜尋的值可以是字串常值或字串類型的資料欄參照。

由於 MATCHES 函式會傳回布林值,因此可當做函式或條件使用。

提示:當您在直方圖中選取陣列類型資料欄的值時,通常是使用 MATCHES 識別用於轉換的值。

提示:如果您需要相符字串在來源中的位置,請使用 FIND 函式。詳情請參閱 FIND 函式

基本用法

資料欄參照範例:

delete row: MATCHES(ProdId, 'Fun Toy')

輸出:刪除 ProdId 資料欄值中含有 Fun Toy 字串常值的所有資料列。

字串常值範例:

derive type:single value: MATCHES('Hello, World', 'Hello')

輸出:針對資料集中的所有值傳回 true

語法

derive type:single value:MATCHES(column_string,string_pattern)

引數是否必要?資料類型說明
column_string字串待搜尋的資料欄名稱或字串文字
string_pattern字串要尋找的字串文字或模式

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

column_string

待搜尋的資料欄名稱或字串文字。

  • 如果系統找不到字串或資料欄值,則會產生空白的字串結果。
    • 字串常數必須以引號括住 ('Hello, World')。
  • 可以將多個資料欄指定為陣列 (matches([Col1,Col2],'hello')。

使用須知:

是否必要?資料類型示例值
字串MyColumn

string_pattern

要與來源資料欄或字串比對的字串文字、Cloud Dataprep 模式或規則運算式。

  • 不支援使用資料欄參照。

使用須知:

是否必要?資料類型示例值
字串文字或模式'home page'

範例

範例 - 篩選記錄資料

在下載的記錄檔中,您可能會看到下列類型的錯誤訊息:

  • INFO:有關處理程序狀態的資訊
  • WARNING:系統在執行期間發生輕微錯誤
  • ERROR:系統發生可能會導致工作失敗的錯誤。


您可以篩選掉 INFOWARNING 訊息的資料,以便進行分析。

來源:

以下資料範例為失敗工作的記錄檔案:

log
2016-01-29T00:14:24.924Z com.example.hadoopdata.monitor.spark_runner.ProfilerServiceClient [pool-13-thread-1] INFO com.example.hadoopdata.monitor.spark_runner.BatchProfileSparkRunner - Spark Profiler URL - http://localhost:4006/
2016-01-29T00:14:40.066Z com.example.hadoopdata.monitor.spark_runner.BatchProfileSparkRunner [pool-13-thread-1] INFO com.example.hadoopdata.monitor.spark_runner.BatchProfileSparkRunner - Spark process ID was null.
2016-01-29T00:14:40.067Z com.example.hadoopdata.monitor.spark_runner.BatchProfileSparkRunner [pool-13-thread-1] INFO com.example.hadoopdata.monitor.spark_runner.BatchProfileSparkRunner - --------------------------------END SPARK JOB-------------------------------
2016-01-29T00:14:44.961Z com.example.hadoopdata.joblaunch.server.BatchPollingWorker [pool-4-thread-2] ERROR com.example.hadoopdata.joblaunch.server.BatchPollingWorker - Job '128' threw an exception during execution
2016-01-29T00:14:44.962Z com.example.hadoopdata.joblaunch.server.BatchPollingWorker [pool-4-thread-2] INFO com.example.hadoopdata.joblaunch.server.BatchPollingWorker - Making sure async worker is stopped
2016-01-29T00:14:44.962Z com.example.hadoopdata.joblaunch.server.BatchPollingWorker [pool-4-thread-2] INFO com.example.hadoopdata.joblaunch.server.BatchPollingWorker - Notifying monitor for job '128', code 'FAILURE'
2016-01-29T00:14:44.988Z com.example.hadoopdata.monitor.client.MonitorClient [pool-4-thread-2] INFO com.example.hadoopdata.monitor.client.MonitorClient - Request succeeded to monitor ip-0-0-0-0.example.com:8001

轉換:

將上述的資料載入應用程式時,您可以按照時間戳記尾端的 Z 字元分割資料,將資料分成不同的資料欄:

split col: column1 on: `Z `

接著,您可以重新命名這兩個資料欄:TimestampLog_Message。如要篩選掉 INFOWARNING 訊息,您可以使用下列的轉換指令比對字串文字來識別這些訊息:

delete row: MATCHES(Log_Message, '] INFO ')

delete row: MATCHES(Log_Message, '] WARNING ')

結果:

執行上述步驟之後,資料應顯示如下:

TimestampLog_Message
2016-01-29T00:14:44.961com.example.hadoopdata.joblaunch.server.BatchPollingWorker [pool-4-thread-2] ERROR com.example.hadoopdata.joblaunch.server.BatchPollingWorker - Job '128' threw an exception during execution

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

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

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