BigQuery中是否存在与pandas的split(expand=True)功能等效的函数?
BigQuery实现类似pandas str.split(expand=True)的拆分列效果
你之前的查询返回的是数组类型的单列,所以会把拆分后的所有值堆叠在同一列展示。要实现和pandasstr.split("~",expand=True)一致的拆分为多列的效果,直接通过数组索引访问拆分后的值即可,用SAFE_OFFSET可以在对应索引无值时自动返回NULL,匹配你要的效果。
正确查询语句
SELECT -- 取拆分后第一个元素,TRIM去掉前后多余空格 TRIM(SPLIT(VALUE, "~")[SAFE_OFFSET(0)]) AS f0_, -- 取拆分后第二个元素,无值时返回NULL TRIM(SPLIT(VALUE, "~")[SAFE_OFFSET(1)]) AS f1_ FROM my_dataset.my_table
说明
- 如果拆分后可能有更多列,只需要对应增加
SAFE_OFFSET(N)的取值语句即可,N从0开始计数 - 如果你不需要去掉分隔符前后的空格,可以去掉
TRIM函数
内容的提问来源于stack exchange,提问作者Ferdi777
相关产品推荐
相关产品推荐

