如何使用 BigQuery API 从 TableResult 获取 json 格式的查询结果

2023-12-29

我正在按照中给出的示例进行操作https://cloud.google.com/bigquery/create-simple-app-api#bigquery-simple-app-java https://cloud.google.com/bigquery/create-simple-app-api#bigquery-simple-app-java从 BigQuery API 获取查询结果。

TableResult result = queryJob.getQueryResults();

它以 TableResults 类型返回结果,但我需要以 json 格式获取结果。

TableResult{rows=[[FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)},
    FieldValue{attribute=PRIMITIVE, value=(...)}],(...)

如何将 TableResults 类型的结果转换为 json,甚至 csv?


要将表中的行转换为 JSON,您可以使用该函数TO_JSON_STRING [1] http://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#to_json_string。 要获取带格式的 JSON,您需要将参数“true”传递给函数。

新的查询将如下所示:

#standardSQL
“SELECT TO_JSON_STRING(t,true)"
 + "FROM ( 
    SELECT CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, "
     + "view_count "
     + "FROM `bigquery-public-data.stackoverflow.posts_questions` "
     + "WHERE tags like '%google-bigquery%' "
     + "ORDER BY favorite_count DESC LIMIT 10) as t”

Output:

TableResult{rows=[[FieldValue{attribute=PRIMITIVE, value={
  "url": "https://stackoverflow.com/questions/6607552",
  "view_count": 24524
}}], [FieldValue{attribute=PRIMITIVE, value={
  "url": "https://stackoverflow.com/questions/20349189",
  "view_count": 4298
}}], [FieldValue{attribute=PRIMITIVE, value={
  "url": "https://stackoverflow.com/questions/22734777",
  "view_count": 7940
}}], [FieldValue{attribute=PRIMITIVE, value={
  "url": "https://stackoverflow.com/questions/27537720",
  "view_count": 2039
(...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 BigQuery API 从 TableResult 获取 json 格式的查询结果 的相关文章

随机推荐

  • HyperLogLog 算法如何工作?

    我最近在业余时间学习了不同的算法 我遇到的一个看起来非常有趣的算法是 HyperLogLog 算法 它估计列表中有多少个唯一的项目 这对我来说特别有趣 因为它让我回到了我的 MySQL 时代 当时我看到了 基数 值 直到最近我一直认为它是计
  • 使用完 .NET 服务引用客户端后是否需要关闭它

    我试图查明在使用完 net 服务引用客户端后是否有必要关闭它 我在网上遇到的几乎所有示例似乎都没有 但生成的客户端实现了 IDisposable 并且由于它确实打开了与服务的连接 我的直觉告诉我 当您需要关闭该连接时 您需要关闭该连接 已经
  • 团队代理和管理员 - Apple Developer

    Apple 开发者网站中的团队代理和管理员有什么区别 有哪些不同的权利 查看官方页面 http developer apple com programs roles index php http developer apple com pr
  • Eclipse - Android 不自动生成 R 类

    有一个奇怪的 使用 Eclipse Juno 过去几个月一切正常 昨天的某个时候 当 Eclipse 清理我的项目时 出现了崩溃 弹出了 Windows 错误报告 没听清崩溃的名称 现在 我在 gen 中没有 R java 类 并且我尝试过
  • std::线程问题

    我想我有一个非常糟糕的概念问题 为什么我使用 valgrind 时会遇到很多竞争条件错误 首先我认为这可能是一个错误 我在论坛中看到更新的 Linux 滚动版本将解决这个问题 所以现在我有 opensuse tubeleweed 100 更
  • 从 Jenkins 在后台启动 shell 脚本的简洁方法

    从詹金斯启动脚本的正确方法是什么 不要让构建挂起 并让进程保持运行 我似乎无法让它发挥作用 脚本不运行或构建挂起 如果我放入构建的 执行 shell 步骤bash relaunch sh or relaunch sh gt output l
  • 使用 php 和 wamp 插入由另一个程序打开的 mdb 文件

    我还需要解决这个问题 Iam running a program name QMS on Windows XP to print ticket for patient It use Access as database I realize
  • 如何添加过滤器以创建从一个栏到另一个栏的单个路径(不在循环中)

    我有一个要求 条形图最多包含 4 个条形图 我试图在条形图上添加一个过滤器 我可以从 4 个条形图中选择一个特定的条形图 并添加一条显示数据的路径 Example 不同的路径 栏 1 gt 栏 3 酒吧2 gt 酒吧4 酒吧 3 gt 酒吧
  • UIMA RUTA - 如何使用正则表达式和组进行查找和替换

    RUTA新手在这里 我正在使用 RUTA 处理文档 并且在开始注释之前需要进行大量规范化操作 我试图找到使用正则表达式和组在 RUTA 中的原始文档上查找和替换字符序列的最佳方法 本质上 我试图了解如何在 RUTA 中执行类似于 Strin
  • PHP生成的Excel文件与下载时不同

    我有一个 PHP 文件 它使用位于以下位置的模块生成 xls 文件 http pear php net package Spreadsheet Excel Writer http pear php net package Spreadshe
  • 阻止 iframe 重定向父页面

    情况是这样的 我在同一个域上有一个 iframe 位于我的网站内 目前 由于部署问题 我无法立即访问 iframe 代码 当 iframe 加载时 其中的代码会检测到触发父页面重定向的内容 暂时想把它去掉 我知道我可以使用 onbefore
  • 通过预处理器检查库是否存在

    有两个库zconf h and unistd h至少习惯于得到pid的过程 我通常在 Mac OSX 和 Ubuntu 18 04 上测试我的代码 他们使用zconf h最好 编译器提供zconf h替代unistd h 如果我忘记添加 那
  • 将目录绑定到 docker 容器

    我正在构建一个测试项目 需要项目目录之外的模块 项目文件夹位于 docker 中 我想将该模块目录绑定到我的项目的 docker 容器 有可能做到吗 或者我问错了问题 顺便说一句 我对 docker 还很陌生 所以我只是尝试一下 我的理解是
  • 是否可以在没有 SQL Server 的情况下访问 .mdf 数据库?

    我创建了一个 mdf通过 SQL Server 文件并将其放入本地文件 我在没有安装 SQL Server 的计算机上运行我的程序 我还使用了来自System Data SqlClient命名空间 即SqlConnection 我想建立某种
  • 无法解析 >= 1.0.0-rc1-update1 的依赖项

    我想将我的 C Web 应用程序更新到下一个 asp net 版本 I ran dnvm use 1 0 0 rc1 update1 r clr arch x64 p 并且 dnvm list 显示活动版本已设置为 rc1 update1
  • 无法创建 Android OAuth2 客户端 ID(重复指纹)

    在 Google Cloud Platform 开发者控制台中创建 Android 客户端 ID 时 我收到以下弹出窗口 重复指纹 您指定的指纹已被 Android OAuth2 使用 此项目或其他项目中的客户端 ID 正如弹出窗口所示 我
  • javascript Date() 函数返回当地时间吗?

    例如 var date new Date 日期是否相对于用户本地时区 是的 事实上它与用户自己的计算机时间相同 它不从服务器或其他任何地方获取信息 而是从用户自己的计算机获取信息
  • content://mms-sms/conversations/ 在 Android ICS Samsung 上返回 NullPointerException

    我正在开发短信应用程序 需要列出短信对话 我在尝试使用 uri 访问内容提供程序时发现问题content mms sms conversations 它在 Android 2 3 上运行良好 但在 Android 4 0 3 Samsung
  • 是否可以在 Python 3 的命令行界面中预填充 input() ?

    我在 Ubuntu 11 10 Linux 上使用 Python 3 2 我的一段新代码如下所示 text input TEXT 是否可以在提示后获取一些预定义的字符串 以便我可以根据需要进行调整 应该是这样的 python3 file T
  • 如何使用 BigQuery API 从 TableResult 获取 json 格式的查询结果

    我正在按照中给出的示例进行操作https cloud google com bigquery create simple app api bigquery simple app java https cloud google com big