【发布时间】:2015-01-19 13:00:27
【问题描述】:
我有一个页面 URL 列的组成部分由/ 分隔。我尝试在 BigQuery 中运行 SPLIT() 函数,但它只给出第一个值。我想要特定列中的所有值。
我不明白如何使用Split string into multiple columns with bigquery 中提到的Regexp_extract() 示例。
我需要类似于REGEX_SPLIT_TO_TABLE(<String>, <DELIMITER>) 的东西,它将单个字符串转换为多列。
查询:
SELECT PK,
DATE(TIMESTAMP(CONCAT(SUBSTR(date,1,4),'-',SUBSTR(date,5,2),'-',SUBSTR(date,7,2),' 00:00:00'))) as visit_date,
hits_page_pagePath,
split(hits_page_pagePath,'/')
FROM [Intent.All2mon] limit 100
【问题讨论】:
-
数据是什么样的?
-
嗨 Felipe,您能帮我了解如何准备正则表达式以从“/”符号内的每个实体中提取信息吗?
-
您无法在 BigQuery 中生成可变数量的列,只能生成固定数量的列,因此您无法完全按照自己的意愿进行操作。如果您可以设置 URL 组件数量的上限,那么您可以生成那么多列,并在特定 URL 的组件较少时将它们设为 NULL。
标签: google-bigquery