- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Spanner 上查询自定义 SQL 并将结果转换为 Pandas Dataframe,因此我需要数据和列名称,但我找不到获取列名称的方法。
根据documentation ,我可以使用元数据或字段属性获取列,但这不起作用。
我尝试运行查询事务并获取快照,但我只获取数据行。
from google.cloud import spanner
from google.cloud.spanner_v1.streamed import StreamedResultSet
def query_transaction(instance_id, database_id, query_param):
spanner_client = spanner.Client.from_service_account_json("PATH_XXXXX")
database = spanner_client.instance(instance_id).database(database_id)
def run_transaction(transaction):
query = query_param
results: StreamedResultSet = transaction.execute_sql(query)
print("type", type(results))
print("metadata", results.stats)
for row in results:
print(row)
database.run_in_transaction(run_transaction)
def query_snapshot(instance_id, database_id, query):
spanner_client = spanner.Client.from_service_account_json("PATH_XXXXX")
database = spanner_client.instance(instance_id).database(database_id)
with database.snapshot() as snapshot:
results: StreamedResultSet = snapshot.execute_sql(query)
print("metadata", results.metadata)
print("type", type(results))
for row in results:
print(row)
spanner_id = "XXXXXXX"
base_id = "XXXXXXXX"
query ="SELECT * FROM XXXXX LIMIT 5"
spanner.query_snapshot(spanner_id, base_id, query)
spanner.query_transaction(spanner_id, base_id, query)
我可以迭代结果并获取行,但元数据始终为 None。
最佳答案
在元数据可用之前,您必须至少获取一行。因此,如果您要更改代码的顺序,以便首先获取数据(或至少一些数据),然后获取元数据,那么它应该可以工作。
results: StreamedResultSet = snapshot.execute_sql(query)
print("metadata", results.metadata)
for row in results:
print(row)
进入此:
results: StreamedResultSet = snapshot.execute_sql(query)
for row in results:
print(row)
print("metadata", results.metadata)
那么您应该获取元数据。
另请注意,结果集统计信息 (results.stats
) 仅在您分析查询时可用。当您刚刚执行查询时,如上面的示例所示,这将始终为空。
关于python - 如何查询spanner并获取元数据,特别是列的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57421665/
我在 Google Cloud Spanner 中有一个 860M 行的表格,我试图了解解释的工作原理。 该表有一个字符串列 geoid并且该列有一个索引。 当我运行以下查询时,它只需要 36 毫秒:
我有 3 个节点的 Spanner 实例,以及一个包含大约 40 亿行的表。 DDL 如下所示: CREATE TABLE predictions ( name STRING(MAX),
我有 3 个节点的 Spanner 实例,以及一个包含大约 40 亿行的表。 DDL 如下所示: CREATE TABLE predictions ( name STRING(MAX),
Cloud Spanner 提供了两种不同的 API。 Cloud Spanner 读取与 Cloud Spanner SQL API 之间有什么区别? 最佳答案 在幕后,它们都使用相同的执行机制,因
给定以下表架构: CREATE TABLE Record ( -- uuidv4 recordId STRING(36) NOT NULL, -- uuidv4 use
我想使用动态查询生成器构建一个复杂的查询,GCP Spanner 中是否有动态查询生成器。 示例: DeleteQuery query = new DeleteQuery("account a").a
我有两个结构 type Row struct{ ID string Status string details Details } type Details struct{ Sessi
假设我有架构 CREATE TABLE Account ( AccountId BYTES(MAX), Foo STRING(1024) ) PRIMARY KEY (AccountId);" CRE
我正在创建一个 SpannerSingleton,以便在应用程序的生命周期内保持连接。我对连接持久性感兴趣...如果存在 session /连接问题,如何重新创建 session ? 一个想法是,如果
我正在尝试使用下面的代码从带有时间戳的 Google Spanner 表中读取内容。 import datetime as dt from google.cloud.spanner.client im
Google Spanner 建议不要使用时间戳或序列号之类的东西作为主键或索引的初始部分,这基于架构是有意义的。但是,根据我的要求,我确实需要一些方法来确保行的严格“仅附加”顺序。 我正在使用 Sp
我正在学习 gulp。我通过以下代码得出的。 wrench.readdirSyncRecursive('./gulp').filter(function(file) { return (/\.(j
在下面的代码中我可以获得适当的数据类型值。 Map mutationMap = mutation.asMap(); Value locationValue = mutationMap.getOrDef
我正在尝试写信来抓取来自 google pub/sub 的一些消息。写入 bigtable 是有效的,因此在基础层面上没有遗漏任何内容。 我已升级到 google-cloud-dataflow-jav
假设我有三个表,Foo、Bar 和 Baz CREATE TABLE Foo ( FooId BYTES(MAX) ) PRIMARY KEY (FooId); CREATE TABLE Bar (
如何在 Google 的 Cloud Spanner 数据库中进行联接? 连接查询会执行得很快吗? SQL(MySql、Oracle、MSSQL)和 NewSQL(Cloud Spanner/TiDB
我们可以在 google spanner DB 中使用地理空间查询吗?如果没有,是否有任何替代方法可以通过在应用程序服务器中移动空间计算来在 SQL 中使用空间查询? 最佳答案 Cloud Spann
我正在尝试使用 Spring Boot 通过 java 连接到 Google Spanner。我不想从数据库中读取某些内容并使用网络套接字发送它。目前我有: @Configuration @Enabl
我想将大数据插入 Google 的 Cloud Spanner 表。 这就是我正在使用node.js应用程序所做的事情,但它停止了,因为txt文件太大(几乎2GB)。 1.load txt file
我们目前使用 NodeJs 和 Knex 来连接 MySQL。 我们计划将数据库迁移到 Cloud Spanner。 所以想知道 knexjs 是否支持云 Spanner 。 我在他们的官网(http
我是一名优秀的程序员,十分优秀!