[英]Google BigQuery extract string from column with regexp_extract
[英]Google BigQuery - Parsing string data from a Bigquery table column
我在Bigquery的數據集中有一個表A。 該表有多個列,其中一個名為hits_eventInfo_eventLabel的列的值如下:
{ID:AEEMEO,得分:8.990000; ID:SEAMCV,得分:8.990000; ID:HBLION;屬性ID:DNSEAWH,得分:0.391670; ID:CP1853; ID:HI2367; ID:H25600;}
如果以表格形式寫出此字符串,則它包含以下數據:
**ID | Score**
AEEMEO | 8.990000
SEAMCV | 8.990000
HBLION | -
DNSEAWH | 0.391670
CP1853 | -
HI2367 | -
H25600 | -
有些ID有分數,有些則沒有。 我在表中的hits_eventInfo_eventLabel列下填充了具有相似字符串的多個記錄。
我的問題是如何在BIGQUERY范圍內成功解析此字符串,以便獲得屬性ID及其各自推薦分數的列表(如果存在)? 我希望解析這些數據后ID出現在字符串中的順序得以保留。
非常感謝任何信息。 提前致謝!
我將使用SPLIT組合成不同的行,並使用REGEXP_EXTRACT組合成不同的列,即
select
regexp_extract(x, r'ID:([^,]*)') as id,
regexp_extract(x, r'Score:([\d\.]*)') score from (
select split(x, ';') x from (
select 'ID:AEEMEO,Score:8.990000;ID:SEAMCV,Score:8.990000;ID:HBLION;Property ID:DNSEAWH,Score:0.391670;ID:CP1853;ID:HI2367;ID:H25600;' as x))
它產生以下結果:
Row id score
1 AEEMEO 8.990000
2 SEAMCV 8.990000
3 HBLION null
4 DNSEAWH 0.391670
5 CP1853 null
6 HI2367 null
7 H25600 null
您可以在BigQuery中編寫自己的JavaScript函數,以立即獲取所需的內容: http : //googledevelopers.blogspot.com/2015/08/breaking-sql-barrier-google-bigquery.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.