【问题标题】:Standard SQL in bq command linebq 命令行中的标准 SQL
【发布时间】:2017-06-12 16:00:22
【问题描述】:

我正在尝试通过命令行以标准模式运行查询。我正在使用这个 bigquery-2.0.17 的最新版本。

首先我尝试使用 bq 查询命令:

bq  query --use_legacy_sql=False  "SELECT string_col FROM `source_name`"

并得到异常

FATAL Flags 解析错误:未知的命令行标志 'use_legacy_sql'

之后,我在 shell 模式下运行

project_name> query --use_legacy_sql=False "SELECT string_col FROM `source_name`"

得到:

float() 参数必须是字符串或数字

你能告诉我,我如何在命令行中运行查询。

谢谢

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    你运行的命令都是正确的。我唯一不同的是我从文件中读取查询,因此我的 bash 尝试解释 ` 符号没有问题,如下所示:

    cat query.sql | bq query --use_legacy_sql=False
    

    (你不会在 bq shell 解释器中遇到这个问题)。

    假设您的查询都是正确的并遵循Standard syntax(您也可以运行一个简单的查询,如"select [1, 2]" 以查看它是否有效,如果有效,那么您的source_name 可能有问题),唯一想到的可能是如果您尝试 reinstall gcloud 甚至更新它(目前我们处于 bq 版本 2.0.24),因为这似乎与环境而不是命令语法更相关。

    【讨论】:

    • 您的评论似乎暗示您已经在 bq shell 解释器中得到了--use_legacy_sql=False to 的工作,对吗?我无法使用命令行标志或 .bigqueryrc 中的标志设置来做到这一点。它总是说FATAL Flags parsing error: Unknown command line flag 'use_legacy_sql'
    • @yokeho 我建议在 SO 中询问您正在尝试运行的内容以及错误消息。不知道为什么它不适合你,也许你正在运行的命令中的其他地方缺少某些东西
    【解决方案2】:

    需要使用gcloud安装而不是单独bq。
    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2021-05-11
      相关资源
      最近更新 更多