小编Ell*_*ard的帖子

如何从命令行使用BigQuery REST API?

尝试向其中一个BigQuery REST API发出普通的GET请求,将出现如下错误:

curl https://www.googleapis.com/bigquery/v2/projects/$PROJECT_ID/jobs/$JOBID
Run Code Online (Sandbox Code Playgroud)

输出:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization",
  ...
Run Code Online (Sandbox Code Playgroud)

从命令行调用REST API之一(例如queryinsertAPI )的正确方法是什么?该API参考具有“试试这个API”,但例子并不直接转化到东西,你可以在命令行中运行。

rest command-line google-bigquery

5
推荐指数
1
解决办法
1543
查看次数

DATE_DIFF,但仅计算工作日

我有一个相当简单的查询;它看起来像这样:

SELECT
order_date,
pickup_date,
DATE_DIFF(pickup_date,order_date, day) order_to_pickup
FROM
`orders.table`
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,我需要计算工作日的日期差异,而不是所有日期。

因此,上面的查询返回的不是:

+------------+-------------+-----------------+
| order_date | pickup_date | order_to_pickup |
+------------+-------------+-----------------+
| 3/29/19    | 4/3/19      |               5 |
| 3/29/19    | 4/2/19      |               4 |
+------------+-------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

+------------+-------------+-----------------+
| order_date | pickup_date | order_to_pickup |
+------------+-------------+-----------------+
| 3/29/19    | 4/3/19      |               2 |
| 3/29/19    | 4/2/19      |               3 |
+------------+-------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

sql datediff google-bigquery

5
推荐指数
1
解决办法
9301
查看次数

如果后续语句返回零记录,如何在 BigQuery 中抛出错误?

我想从我的 bigquery 脚本中抛出错误或消息,以防查询语句获取零记录。

google-bigquery

3
推荐指数
1
解决办法
3087
查看次数

Cloud Run 服务 URL 的格式是什么?

该文档提供了一个https://gateway-12345-uc.a.run.app作为服务 URL的示例。Cloud Run 服务 URL 是否始终具有-uc.a.run.app后缀,或者将来是否会更改?

google-cloud-run

3
推荐指数
1
解决办法
232
查看次数

使用BigQuery新标准SQL语法,"count distinct"是否完全正确?

使用遗留的BigQuery语法,如果我们想要获得字段的确切数量的不同值,我们必须使用exact_count_distinct函数.

使用标准SQL 2011语法,我想知道如果我不选择"使用旧版SQL"选项," count(distinct myfield)"将始终返回不同值的确切数量.

google-bigquery

2
推荐指数
2
解决办法
5712
查看次数

在 java bigquery API 中使用标准 SQL 查询

使用 java bigquery API 时是否可以使用标准 SQL 查询?我正在尝试执行查询,但它抛出

com.google.api.client.googleapis.json.GoogleJsonResponseException:400 错误请求“消息”:“11.3 - 11.56:无法识别的类型 FLOAT64”

java google-bigquery

2
推荐指数
1
解决办法
1540
查看次数

Google BigQuery:通过 Python google-cloud-bigquery 版本 0.27.0 与 0.28.0 创建视图

全部,

我在使用大约两周前发布的 0.28 版本的 bq 库在 python 中创建 Google BigQuery 视图时遇到问题。我很确定问题出在我这边,我错过了一些东西,但我找不到问题所在。

请温柔点,我不会在网上问很多问题,但我很困惑。我也不是完全无能,这里有一些细节:

  1. 我的 GOOGLE_APPLICATION_CREDENTIALS 设置正确
  2. 我通过 python 对 bq 运行的所有其他命令都很好
  3. 我已经查看了 https://cloud.google.com/bigquery/docs/python-client-migration

  4. 我认为问题在于“修复” https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4038 BigQuery:用 client.create_table() 替换 table.create() #4038

  5. 我尝试过传统 sql 与标准 sql
  6. 我使用的是 python 2.7.12(无法很快升级,企业版的事情)

问题?下面第二块中的代码创建一个表,没有模式也没有记录。显然应该创建一个 VIEW,对吗?

sudo pip install -Iv google-cloud-bigquery==0.27.0

from google.cloud import bigquery

project=None
dataset_name = 'my_dataset_id'
view_name = 'vw_dummy_data20'
sqlQuery = 'select record_id as id, UPPER(first_name) as first_name, UPPER(last_name) as last_name from [my_project_code:my_dataset_id.dummy_data13]'

bigquery_client = bigquery.Client(project=project)
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(view_name)
table.view_query = sqlQuery …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 google-bigquery

2
推荐指数
1
解决办法
1363
查看次数

BigQuery ML 无法识别数据中的标签列

我正在尝试使用 BQML 创建线性回归模型,该模型使用 FLOAT 列trips_per_bike作为模型输入

CREATE MODEL `bqml_tutorial.austin_bikeshare_model`
OPTIONS
  (model_type='linear_reg',
    input_label_cols=['trips_per_bike'])
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是“无法识别数据中的标签列。请使用 OPTIONS(input_label_cols=['your_label_col']) 指定标签列,或将数据中的标签列命名为“标签”。”

我确信“trips_per_bike”是 FROM 表中的 FLOAT 列。我有什么遗漏的吗?

google-bigquery

2
推荐指数
1
解决办法
1845
查看次数

如何在不指定完整类型的情况下将表中的行传递给UDF?

假设我要使用JavaScript UDF对具有嵌套结构的表进行一些处理(例如示例Github commits)。在迭代实现时,我可能想更改在UDF中查看的字段,因此我决定只将表中的整个行传递给它。我的UDF最终看起来像这样:

#standardSQL
CREATE TEMP FUNCTION GetCommitStats(
  input STRUCT<commit STRING, tree STRING, parent ARRAY<STRING>,
               author STRUCT<name STRING, email STRING, ...>>)
  RETURNS STRUCT<
    parent ARRAY<STRING>,
    author_name STRING,
    diff_count INT64>
  LANGUAGE js AS """
[UDF content here]
""";
Run Code Online (Sandbox Code Playgroud)

然后,我使用查询查询该函数,例如:

SELECT GetCommitStats(t).*
FROM `bigquery-public-data.github_repos.sample_commits` AS t;
Run Code Online (Sandbox Code Playgroud)

UDF声明中最麻烦的部分是输入结构,因为我必须包括所有嵌套字段及其类型。有一个更好的方法吗?

google-bigquery bigquery-standard-sql

1
推荐指数
1
解决办法
825
查看次数

如何使用BigQuery在INT64和二进制STRING之间转换?

BigQuery问题跟踪器上有一个功能请求,用于转换功能,例如和之间的INT64二进制STRING。除了使用JavaScript UDF之外,还有其他解决方法吗?

google-bigquery bigquery-standard-sql

0
推荐指数
1
解决办法
697
查看次数

无法访问 [1:104] 处类型为 ARRAY&lt;STRUCT&lt;hitNumber INT64、时间 INT64、小时 INT64、...&gt;&gt; 的值的字段 customDimensions

我是 google bigquery 的新手。我正在尝试从 google bigquery 数据集之一获取数据,但出现以下错误屏幕截图

SQL查询:

SELECT  h.value
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`,
UNNEST(hits.customDimensions) AS h
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

请让我知道我在这里犯了什么错误。

google-bigquery gcloud

0
推荐指数
1
解决办法
6995
查看次数