我正在尝试使用始终免费层选项运行计算引擎实例。免费层的文档表明,如果它是来自某些位置的 e2-micro 计算机引擎实例,那么它应该是免费的。这是屏幕截图:
现在,我在 us-central1 位置(这是免费层位置之一)选择了具有 10GB 标准永久磁盘(在 GCP 平台中不能低于 10GB)的 e2-micro。它仍然显示每月费用估计为 6.51 美元。这是实例配置的屏幕截图:
我在这里做错了什么吗?我是否需要检查其他选项以确保它保持在始终免费的状态?
我有一张看起来像这样的表:
我正在寻找一个表格,它给出了字段中元素的频率计数l_0, l_1, l_2, l_3
。
例如,输出应如下所示:
| author_id | year | l_o.name | l_0.count| l1.name | l1.count | l2.name | l2.count| l3.name | l3.count|
| 2164089123 | 1987 | biology | 3 | botany | 3 | | | | |
| 2595831531 | 1987 | computer science | 2 | simulation | 2 | computer simulation | 2 | mathematical model | 2 |
Run Code Online (Sandbox Code Playgroud)
编辑:
在某些情况下,数组字段可能有不止一种类型的元素。例如l_0
可能是 ['biology', 'biology', 'geometry', 'geometry']
. 在这种情况下,输出为字段l_0, l_1, l_2, …
我在一个数据集中有大约 108 个表。我正在尝试使用以下 bash 脚本提取所有这些表:
# get list of tables
tables=$(bq ls "$project:$dataset" | awk '{print $1}' | tail +3)
# extract into storage
for table in $tables
do
bq extract --destination_format "NEWLINE_DELIMITED_JSON" --compression "GZIP" "$project:$dataset.$table" "gs://$bucket/$dataset/$table.json.gz"
done
Run Code Online (Sandbox Code Playgroud)
但似乎bq ls
一次只能显示大约 50 个表,因此我无法将它们提取到云存储中。
无论如何我可以使用该bq ls
命令访问所有 108 个表吗?
我创建了一个表,其中包含一对 ID 和每个 ID 的坐标,以便我可以计算它们之间的成对余弦相似度。
坐标的维度数目前为 128,但它可能会有所不同。但是在同一个表中,一对 ID 的数字维度总是相同的。
coord1
和coord2
是具有浮点值的重复字段(数组)。
有没有办法计算它们之间的余弦相似度?
我的预期输出将包含三列id1
,id2
和cosine_similarity
。
让我们每行我有一个在说id
和两个数组array_1
和array_2
看起来像以下
SELECT 'a' id, [1,2,3,4,5] array_1, [2,2,2,3,6] array_2 UNION ALL
SELECT 'b', [2,3,4,5,6], [7,7,8,6,9] UNION ALL
SELECT 'c', [], [1,4,5]
Run Code Online (Sandbox Code Playgroud)
我想连接这两个数组,只保留新数组中的唯一元素。我想要的输出如下所示
+----+-----------+-----------+-----------------------------+
| id | array_1 | array_2 | concatenated_array_distinct |
+----+-----------+-----------+-----------------------------+
| a | 1,2,3,4,5 | 2,2,2,3,6 | 1,2,3,4,5,6 |
| b | 2,3,4,5,6 | 7,7,8,6,9 | 2,3,4,5,6,7,8,9 |
| c | | 1,4,5 | 1,4,5 |
+----+-----------+-----------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
我试图使用array_concat
函数,但找不到使用该array_concat
函数保留不同元素的方法。
无论如何我可以获得所需的输出?
我有一个看起来像这样的表:
然后我尝试将 label1、label2、label3 聚合到每种类型标签的一个数组中,最后我想将所有非空标签放入一个组合数组中。所以我的查询看起来像这样
#standardSQL
WITH
table AS (
SELECT 'abc' id, 1 label1, 12 label2, 122 label3 UNION ALL
SELECT 'abc', 1, 12, 129 UNION ALL
SELECT 'xyz', 2, 23, NULL UNION ALL
SELECT 'xyz', 2, 24, NULL
),
each_label_agg AS (
SELECT
id,
ARRAY_AGG(label1 IGNORE NULLS) AS label1_agg,
ARRAY_AGG(label2 IGNORE NULLS) AS label2_agg,
ARRAY_AGG(label3 IGNORE NULLS) AS label3_agg
FROM
table
GROUP BY
id)
SELECT
each_label_agg.*,
ARRAY_CONCAT(each_label_agg.label1_agg, each_label_agg.label2_agg,
each_label_agg.label3_agg) AS combined_labels
FROM
each_label_agg
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
但在输出中我combined_labels
期望[2,2,23,24]
id …