本文介紹操作符函數的文法規則,包括參數解釋、函數樣本等。
函數列表
如果值為負數,請使用op_neg(positive value)
函數,例如:您要表示-1
,請使用op_neg(1)。
類型 | 函數 | 說明 |
條件判斷函數 | 根據判斷條件返回不同運算式的值。 | |
返回第一個值不為None的運算式的值。 | ||
如果運算式1等於運算式2,返回None。否則返回運算式1的值。 | ||
使用邏輯運算and,對任意類型值進行真假判斷,所有參數值為真時返回True。 | ||
使用邏輯運算not,對任意類型值進行真假判斷,返回參數值的反義布爾值。 | ||
使用邏輯運算or,對任意類型值進行真假判斷。當任意參數值為真時返回True,所有參數值為假時返回False。 | ||
比較 | 按照 a和b類型必須一致,例如都是字串、數字或者列表。 | |
按照 a和b類型必須一致,例如都是字串、數字或者列表。 | ||
按照 a和b類型必須一致,例如都是字串、數字或者列表。 | ||
按照 a和b類型必須一致,例如都是字串、數字或者列表。 | ||
按照 a和b類型必須一致,例如都是字串、數字或者列表。 | ||
按照 a和b類型必須一致,例如都是字串、數字或者列表。 | ||
容器判斷 | 計算文本字串中的字元數,可用於字串和其他返回元組、列表、字典的運算式。 | |
判斷字串、元組、列表或字典中是否包含特定元素,返回True或False。 | ||
判斷字串、元組、列表或字典中是否不包含特定元素,返回True或False。 | ||
對指定字串、數組、元組進行截取。 | ||
根據字串、數組、元組的下標返回其對應的元素。 | ||
一般性多值操作 | 計算多個值的和,可以是字串或者數字等。 | |
計算多個欄位或運算式表示的數值的最大值。 | ||
計算多個欄位或運算式表示的數值的最小值。 |
op_if
根據判斷條件返回不同運算式的值。
函數格式
op_if(condition, expression1, expression2)
參數說明
參數名稱
參數類型
是否必填
說明
condition
任意
是
判斷條件。如果該條件為非布爾值,系統將對其採用真假判斷。更多資訊,請參見真假判斷。
expression1
任意
是
判斷結果為True時,返回該運算式的值。
expression2
任意
是
判斷結果為False時,返回該運算式的值。
返回結果
返回相應的運算式的值。
函數樣本
樣本1:如果
content
為True,則把運算式1的值賦給test_if
。原始日誌
content: hello
加工規則
e_set("test_if", op_if(v("content"),"still origion content","replace this"))
加工結果
content: hello test_if: still origion content
樣本2:如果
content
為False,則把運算式2的值賦給test_if
。原始日誌
content: 0
加工規則
e_set("test_if", op_if(ct_int(v("content", default=0)),"still origion content","replace this"))
加工結果
content: 0 test_if: replace this
op_ifnull
返回第一個值不為None的運算式的值。
函數格式
op_ifnull(expression1, expression2, ....)
參數說明
參數名稱
參數類型
是否必填
說明
expression1
任意
是
運算式1。
expression2
任意
是
運算式2。
返回結果
返回第一個值不為None的運算式的值。
函數樣本
樣本1:
原始日誌
test_if: hello escape_name: Etl
加工規則
e_set("test_ifnull", op_ifnull(v("escape_name"),v("test_if")))
加工結果
test_if: hello escape_name: Etl test_ifnull: Etl
樣本2:
原始日誌
test_if: hello escape_name: Etl
加工規則
e_set("test_ifnull", op_ifnull(v("test_if"),v("escape_name")))
加工結果
test_if: hello escape_name: Etl test_ifnull: hello
op_coalesce
返回第一個值不為None的運算式的值。
與op_ifnull
函數的參數說明和樣本類似。更多資訊,請參見op_ifnull。
op_nullif
如果運算式1等於運算式2,返回None。否則返回運算式1的值。
函數格式
op_nullif(expression1, expression2)
參數說明
參數名稱
參數類型
是否必填
說明
expression1
任意
是
運算式1。
expression2
任意
是
運算式2。
返回結果
如果運算式1和運算式2相等返回None,否則返回運算式1的值。
函數樣本
樣本1:
原始日誌
content: hello escape_name: Etl
加工規則
e_set("test_ifnull", op_nullif(v("content"),v("escape_name")))
加工結果
content: hello escape_name: Etl test_nullif: hello
樣本2:
原始日誌
content: hello escape_name: hello
加工規則
e_set("test_ifnull", op_nullif(v("content"),v("escape_name")))
加工結果
#因為content與escape_name內容一樣,所以沒有任何內容返回給test_isnull欄位。 content: hello escape_name: hello
op_and
使用邏輯運算and,對任意類型值進行真假判斷,所有參數值為真時返回True。
函數格式
op_and(value1, value2, ...)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
任意
是
運算值2。
返回結果
所有參數值為真時返回True。
對任意類型值進行真假判斷。更多資訊,請參見真假判斷。
函數樣本
樣本1:
原始日誌
number1: 123 number2: 234
加工規則
e_set("op_and", op_and(v("number1"),v("number2")))
加工結果
number1: 123 number2: 234 op_and: True
樣本2:
原始日誌
number1: 0 number2: 234
加工規則
e_set("op_and", op_and(v("number1"),v("number2")))
加工結果
number1: 0 number2: 234 op_and: True
樣本3:
原始日誌
ctx1: False ctx2: 234
加工規則
e_set("op_and", op_and(v("ctx1"),v("ctx2")))
加工結果
ctx1: False ctx2: 234 op_and: False
樣本4:
原始日誌
ctx1: True ctx2: 234
加工規則
e_set("op_and", op_and(v("ctx1"),v("ctx2")))
加工結果
ctx1: True ctx2: 234 op_and: True
op_not
使用邏輯運算not,對任意類型值進行真假判斷,返回運算式值的反義布爾值。
函數格式
op_not(expression)
參數說明
參數名稱
參數類型
是否必填
說明
expression
任意
是
運算式。
返回結果
返回運算式值的反義布爾值。
對任意類型值進行真假判斷。更多資訊,請參見真假判斷。
函數樣本
樣本1:
原始日誌
ctx1: True
加工規則
e_set("op_not", op_not(v("ctx1")))
加工結果
ctx1: True op_not: False
樣本2:
原始日誌
ctx1: 345
加工規則
e_set("op_not", op_not(v("ctx1")))
加工結果
ctx1: 345 op_not: False
樣本3:
原始日誌
ctx1: 0
加工規則
e_set("op_not", op_not(ct_int(v("ctx1"))))
加工結果
ctx1: 0 op_not: True
樣本4:
原始日誌
ctx1: ETL
加工規則
e_set("op_not", op_not(v("ctx1")))
加工結果
ctx1: ETL op_not: False
樣本5:
原始日誌
ctx1: None
加工規則
e_set("op_not", op_not(v("ctx1")))
加工結果
ctx1: None op_not: True
op_or
使用邏輯運算or,對任意類型值進行真假判斷。當任意運算式的值為真時返回True,所有運算式值為假時返回False。
函數格式
op_or(expression1, expression2, ...)
參數說明
參數名稱
參數類型
是否必填
說明
expression1
任意
是
運算式1。
expression2
任意
是
運算式2。
返回結果
任意運算式的值為真時返回True,所有運算式的值為假時返回False。
對任意類型值進行真假判斷。更多資訊,請參見真假判斷。
函數樣本
樣本1:
原始日誌
ctx1: 123 ctx2: 234
加工規則
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
加工結果
ctx1: 123 ctx2: 234 op_or: True
樣本2:
原始日誌
ctx1: 0 ctx2: 234
加工規則
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
加工結果
ctx1: 0 ctx2: 234 op_or: True
樣本3:
原始日誌
ctx1: ETL ctx2: ALIYUN
加工規則
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
加工結果
ctx1: ETL ctx2: ALIYUN op_or: True
樣本4:
原始日誌
ctx1: True ctx2: False
加工規則
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
加工結果
ctx1: True ctx2: False op_or: True
樣本5:
原始日誌
ctx1: 0 ctx2: False
加工規則
e_set("op_or", op_or(ct_int(v("ctx1")),v("ctx2")))
加工結果
ctx1: 0 ctx2: False op_or: False
樣本6:
原始日誌
ctx1: 124 ctx2: True
加工規則
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
加工結果
ctx1: 124 ctx2: True op_or: True
op_eq
按照a==b
條件進行計算,返回True或False。
函數格式
op_eq(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1與值2相等返回True,否則返回False。
函數樣本
樣本1:
原始日誌
content: hello ctx: hello
加工規則
e_set("test_eq", op_eq(v("content"),v("ctx")))
加工結果
content: hello ctx: hello test_eq: True
樣本2:
原始日誌
content: hello ctx: ctx
加工規則
e_set("test_eq", op_eq(v("content"),v("ctx")))
加工結果
content: hello ctx: ctx test_eq: False
op_ge
按照a>=b
條件進行計算,返回True或False。
函數格式
op_ge(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1大於等於值2返回True,否則返回False。
函數樣本
樣本1:假如apple_price的值大於等於orange_price的值,則返回True。
原始日誌
apple_price: 16 orange_price: 14
加工規則
e_set("test_ge", op_ge(ct_int(v("apple_price")),ct_int(v("orange_price"))))
加工結果
apple_price: 16 orange_price: 14 test_ge: True
樣本2:假如apple_price的值小於orange_price的值,則返回False。
原始日誌
apple_price: 12 orange_price: 14
加工規則
e_set("test_ge", op_ge(ct_int(v("apple_price")),ct_int(v("orange_price"))))
加工結果
apple_price: 12 orange_price: 14 test_ge: False
op_gt
按照a>b
條件進行計算,返回True或False。
函數格式
op_gt(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1大於值2返回True,否則返回False。
函數樣本
樣本1:判斷old_number取值是否大於young_number取值,大於返回True否則返回False。
原始日誌
old_number: 16 young_number: 14
加工規則
e_set("op_gt",op_gt(ct_int(v("old_number")),ct_int(v("young_number"))))
加工結果
old_number: 16 young_number: 14 test_ge: True
樣本2:判斷priority取值是否大於price取值,大於返回True否則返回False。
原始日誌
priority: 14 price: 16
加工規則
e_set("op_gt",op_gt(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 14 price: 16 test_ge: False
op_le
按照a<=b
條件進行計算,返回True或False。
函數格式
op_le(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1小於等於值2返回True,否則返回False。
函數樣本
樣本1:如果priority的值小於等於price的值,返回True否則返回False。
原始日誌
priority: 16 price: 14
加工規則
e_set("op_le",op_le(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 16 price: 14 test_ge: False
樣本2:如果priority的值小於等於price的值,返回True否則返回False。
原始日誌
priority: 14 price: 16
加工規則
e_set("op_le",op_le(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 14 price: 16 test_ge: True
op_lt
按照a<b
條件進行計算,返回True或False。
函數格式
op_lt(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1小於值2返回True,否則返回False。
函數樣本
樣本1: 如果priority的值小於price的值,返回True否則返回False。
原始日誌
priority: 16 price: 14
加工規則
e_set("op_lt",op_lt(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 16 price: 14 op_lt: False
樣本2:如果priority的值小於price的值,返回True否則返回False。
原始日誌
priority: 14 price: 15
加工規則
e_set("op_lt",op_lt(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 14 price: 15 op_lt: True
op_ne
按照a!=b
條件進行計算,返回True或False。
函數格式
op_ne(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1相同
是
運算值2。
返回結果
如果值1不等於值2返回True,否則返回False。
函數樣本
樣本1:
原始日誌
priority: 16 price: 14
加工規則
e_set("op_ne",op_ne(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 16 price: 14 op_ne: True
樣本2:
原始日誌
priority: 14 price: 14
加工規則
e_set("op_ne",op_ne(ct_int(v("priority")),ct_int(v("price"))))
加工結果
priority: 14 price: 14 op_ne: False
op_len
計算文本字串中的字元數,可用於字串和其他返回元組、列表、字典的運算式。
函數格式
op_len(value)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、元組、列表或字典等
是
運算值。
返回結果
返回欄位的長度。
函數樣本
原始日誌
content: I,love,this,world
加工規則
e_set("op_len",op_len(v("content")))
加工結果
content: I,love,this,world op_len: 17
op_in
判斷字串、元組、列表或字典中是否包含特定元素,返回True或False。
函數格式
op_in(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
字串、元組、列表或字典等
是
字串、元組、列表或者字典等。
value2
任意
是
判斷的元素。
說明函數中字串、元組、列表或字典參數在前,元素在後。
返回結果
如果字串、元組、列表或字典a中包含元素b返回True,否則返回False。
函數樣本
原始日誌
list: [1, 3, 2, 7, 4, 6] num2: 2
加工規則
e_set("op_in",op_in(v("list"),v("num2")))
加工結果
list: [1, 3, 2, 7, 4, 6] num2: 2 op_in: True
op_not_in
判斷字串、元組、列表或字典中是否不包含特定元素,返回True或False。
函數格式
op_not_in(value1, value2)
參數說明
參數名稱
參數類型
是否必填
說明
value1
字串、元組、列表或字典等
是
字串、元組、列表或者字典等。
value2
任意
是
判斷的元素。
說明函數中字串、元組、列表或字典參數在前,元素在後。
返回結果
如果字串、元組、列表或字典中不包含元素返回True,否則返回False。
函數樣本
原始日誌
list: [1, 3, 2, 7, 4, 6] num2: 12
加工規則
e_set("op_not_in",op_not_in(v("list"),v("num2")))
加工結果
list: [1, 3, 2, 7, 4, 6] num2: 12 op_in: True
op_slice
對指定字串、數組、元組進行截取。
函數格式
op_slice(value, start, end=None, step=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
函數要切片的值。
start
Num
否
截取的起始位置,預設為位置0。
end
Num
否
截取的結束位置,不包含該位置,預設為字串結尾位置。
step
Num
否
每次截取的長度。
返回結果
返回提取後的字串。
函數樣本
樣本1:對word欄位從開頭到結尾開始進行截取,步長為2。
原始日誌
word: I,love,this,world
加工規則
e_set("op_slice",op_slice(v("word"),2))
加工結果
word: I,love,this,world op_slice: I,
樣本2:對word欄位從位置2到位置9進行截取,步長為1。
原始日誌
word: I,love,this,world
加工規則
e_set("op_slice",op_slice(v("word"),2,9,1))
加工結果
word: I,love,this,world op_slice: love,th
op_index
根據字串、數組、元組的下標返回其對應的元素。
函數格式
op_index(value, index)
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
字串、數組、元組等。
index
Num
否
需要傳入的字串、數組或元組的下標。
返回結果
返回下標對應的元素。
函數樣本
樣本1:返回word欄位下標為0的元素。
原始日誌
word: I,love,this,world
加工規則
e_set("op_index",op_index(v("word"),0))
加工結果
word: I,love,this,world op_slice: I
樣本2:返回word欄位下標為3的元素。
原始日誌
word: I,love,this,world
加工規則
e_set("op_index",op_index(v("word"),3))
加工結果
word: I,love,this,world op_index: o
op_add
計算多個值的和,可以是字串或者數字等。
函數格式
op_add(value1, value2, ...)
參數說明
參數名稱
參數類型
是否必填
說明
value1
字串、元組、列表或字典等
是
運算值1。
value2
必須與值1一樣
是
運算值2。
返回結果
返回求和操作後的數值。
函數樣本
樣本1:計算price_orange和price_apple總金額。
原始日誌
price_orange: 2 price_apple: 13
加工規則
e_set("account",op_add(ct_int(v("price_orange")),ct_int(v("price_apple"))))
加工結果
price_orange: 2 price_apple: 13 account: 15
樣本2:統計bytes_in和bytes_out的和。
原始日誌
bytes_in: 214 bytes_out: 123
加工規則
e_set("total_bytes", op_add(ct_int(v("bytes_in")), ct_int(v("bytes_out"))))
加工結果
bytes_in: 214 bytes_out: 123 total_bytes: 337
樣本3:給網址添加HTTPS頭。
原始日誌
host: aliyun.com
加工規則
e_set("website", op_add("https://", v("host")))
加工結果
host: aliyun.com website: https://aliyun.com
op_max
計算多個欄位或運算式表示的數值的最大值。
函數格式
op_max(value1, value2, ...)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1一樣
是
運算值2。
返回結果
返回多個數值中的最大值。
函數樣本
原始日誌
price_orange: 2 priority_apple: 13
加工規則
e_set("max_price", op_max(ct_int(v("price_orange")),ct_int(v("priority_apple"))))
加工結果
price_orange: 2 priority_apple: 13 max_price: 13
op_min
計算多個欄位或運算式表示的數值的最小值。
函數格式
op_min(value1, value2, ...)
參數說明
參數名稱
參數類型
是否必填
說明
value1
任意
是
運算值1。
value2
必須與值1一樣
是
運算值2。
返回結果
返回多個數值中的最小值。
函數樣本
原始日誌
price_orange: 2 price_apple: 13
加工規則
e_set("op_min", op_min(ct_int(v("price_orange")),ct_int(v("price_apple"))))
加工結果
price_orange: 2 price_apple: 13 op_min: 2