BigQuery:在使用 UNNEST 函数和清理结果数据的方法后,我选择了更多列
Posted
技术标签:
【中文标题】BigQuery:在使用 UNNEST 函数和清理结果数据的方法后,我选择了更多列【英文标题】:BigQuery: The results have much more columns that I have selected after using the UNNEST function & ways to clean the results data 【发布时间】:2019-05-21 16:08:00 【问题描述】:我使用以下代码从 BigQuery 中查询 Google Analytics(分析)数据。我只选择了几个指标,但从结果来看,它让我一切都以“产品”开头。
#standardSQL
SELECT
date, prod.productRevenue,
hits.transaction.transactionId,
prod.productQuantity, hits.product, prod.productSKU
FROM `XXX.ga_sessions_*`,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS prod
WHERE _TABLE_SUFFIX BETWEEN 'XXX' AND 'XXX' AND hits.transaction.transactionId IS NOT NULL
这是因为我使用了 UNNEST 吗?如果是这样,我应该怎么做才能只查询我选择的列?
另外,有没有清理结果数据的好方法?结果数据如下所示:
v2ProductName:"AAA" productQuantity:"1" transactionId:"123"
v2ProductName:"BBB" productQuantity:"1" transactionId:"456"
但我想要的是:
+---------------+-----------------+---------------+
| v2ProductName | productQuantity | transactionId |
+---------------+-----------------+---------------+
| AAA | 1 | 123 |
| BBB | 1 | 456 |
+---------------+-----------------+---------------+
在从 BigQuery 导出结果之前,有没有办法像这样格式化结果?如果没有,有什么好的方法吗?
【问题讨论】:
“结果数据看起来像这样” - 它们在哪里看起来像这样?表示取决于上下文 将结果导出为json文件,json文件长这样 好的,所以您希望 JSON 文件看起来像 CSV 文件?您是否尝试将其导出为 CSV? 文件太大,无法导出为 CSV。 BigQuery 给我的唯一选择是 JSON。 AFAIK - CSV 导出的大小没有大小限制 【参考方案1】:您粘贴的查询似乎没有任何嵌套数据。
您粘贴的 JSON 结果也与查询不匹配。
确保您的结果不包含嵌套/重复数据,并且您将能够导出 CSV。
【讨论】:
以上是关于BigQuery:在使用 UNNEST 函数和清理结果数据的方法后,我选择了更多列的主要内容,如果未能解决你的问题,请参考以下文章
UNNEST(hit.eCommerceAction),谷歌 Bigquery