尝试向其中一个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之一(例如query或insertAPI )的正确方法是什么?该API参考具有“试试这个API”,但例子并不直接转化到东西,你可以在命令行中运行。
我有一个相当简单的查询;它看起来像这样:
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) 我想从我的 bigquery 脚本中抛出错误或消息,以防查询语句获取零记录。
该文档提供了一个https://gateway-12345-uc.a.run.app作为服务 URL的示例。Cloud Run 服务 URL 是否始终具有-uc.a.run.app后缀,或者将来是否会更改?
使用遗留的BigQuery语法,如果我们想要获得字段的确切数量的不同值,我们必须使用exact_count_distinct函数.
使用标准SQL 2011语法,我想知道如果我不选择"使用旧版SQL"选项," count(distinct myfield)"将始终返回不同值的确切数量.
使用 java bigquery API 时是否可以使用标准 SQL 查询?我正在尝试执行查询,但它抛出
com.google.api.client.googleapis.json.GoogleJsonResponseException:400 错误请求“消息”:“11.3 - 11.56:无法识别的类型 FLOAT64”
全部,
我在使用大约两周前发布的 0.28 版本的 bq 库在 python 中创建 Google BigQuery 视图时遇到问题。我很确定问题出在我这边,我错过了一些东西,但我找不到问题所在。
请温柔点,我不会在网上问很多问题,但我很困惑。我也不是完全无能,这里有一些细节:
我已经查看了 https://cloud.google.com/bigquery/docs/python-client-migration
我认为问题在于“修复” https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4038 BigQuery:用 client.create_table() 替换 table.create() #4038
问题?下面第二块中的代码创建一个表,没有模式也没有记录。显然应该创建一个 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) 我正在尝试使用 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 列。我有什么遗漏的吗?
假设我要使用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声明中最麻烦的部分是输入结构,因为我必须包括所有嵌套字段及其类型。有一个更好的方法吗?
BigQuery问题跟踪器上有一个功能请求,用于转换功能,例如和之间的INT64二进制STRING。除了使用JavaScript UDF之外,还有其他解决方法吗?
我是 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 ×10
command-line ×1
datediff ×1
gcloud ×1
java ×1
python ×1
python-2.7 ×1
rest ×1
sql ×1