簡體   English   中英

Google BigQuery-解析Bigquery表列中的字符串數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM