使用 BigQuery REGEXP_REPLACE 修改部分字符串
Amend part of string using BigQuery REGEXP_REPLACE
不知是否有人可以帮助我。
我的 bigquery table 中的 eventinfo.eventLabel 字段包含以下数据:
View View Code red for the BDAT group
SELECT
#select all fields excluding those under the hits record
* EXCEPT (hits),
#start array - this rebuilds the hit record
ARRAY(
SELECT
#unnest the hit field, select each field excluding those under the page record
AS STRUCT * EXCEPT (eventInfo ),
(
SELECT
#select all page fields excluding pageTitle
AS STRUCT eventInfo.* EXCEPT (eventLabel),
#remove the query parameter from the pagePath fields
REGEXP_REPLACE(eventinfo.eventLabel, r'View\sView .*', 'View View redacted') AS eventLabel) AS eventinfo
FROM
UNNEST(hits) ) AS hits
FROM
`bigquery.Tested.ga_sessions_20180801`
我正在尝试删除数据的 "Code red" 元素并将其替换为术语 "redacted"。
请注意 "Code red" 不是唯一的值,字符数可以增减。但是 "View View" 和 "for the" 在我的数据中是不变的。
我知道问题出在 REGEXP REPLACE 行,我可以设法将 "redacted" 文本放入该字段,但我无法删除 "Code red" 文本。
有人可以看看这个并提供一些关于我如何能够改变它的指导。
非常感谢和亲切的问候
克里斯
select
[
REGEXP_REPLACE('View View Code red for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
REGEXP_REPLACE('View View Code blue for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
REGEXP_REPLACE('View View red code for the BDAT group', r'View View .*? for the', 'View View redacted for the')
]
不知是否有人可以帮助我。
我的 bigquery table 中的 eventinfo.eventLabel 字段包含以下数据:
View View Code red for the BDAT group
SELECT
#select all fields excluding those under the hits record
* EXCEPT (hits),
#start array - this rebuilds the hit record
ARRAY(
SELECT
#unnest the hit field, select each field excluding those under the page record
AS STRUCT * EXCEPT (eventInfo ),
(
SELECT
#select all page fields excluding pageTitle
AS STRUCT eventInfo.* EXCEPT (eventLabel),
#remove the query parameter from the pagePath fields
REGEXP_REPLACE(eventinfo.eventLabel, r'View\sView .*', 'View View redacted') AS eventLabel) AS eventinfo
FROM
UNNEST(hits) ) AS hits
FROM
`bigquery.Tested.ga_sessions_20180801`
我正在尝试删除数据的 "Code red" 元素并将其替换为术语 "redacted"。
请注意 "Code red" 不是唯一的值,字符数可以增减。但是 "View View" 和 "for the" 在我的数据中是不变的。
我知道问题出在 REGEXP REPLACE 行,我可以设法将 "redacted" 文本放入该字段,但我无法删除 "Code red" 文本。
有人可以看看这个并提供一些关于我如何能够改变它的指导。
非常感谢和亲切的问候
克里斯
select
[
REGEXP_REPLACE('View View Code red for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
REGEXP_REPLACE('View View Code blue for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
REGEXP_REPLACE('View View red code for the BDAT group', r'View View .*? for the', 'View View redacted for the')
]