我正在尝试通过命令行在标准模式下运行查询。我正在使用最近版本的这个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()参数必须是字符串或数字
你能告诉我,如何在命令行中运行查询。
由于
答案 0 :(得分:5)
您正在运行的命令都是正确的。我唯一不同的是我从一个文件中读取查询,所以我没有遇到问题,我的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),因为这似乎与环境更相关比命令语法。
答案 1 :(得分:0)
需要使用gcloud安装而不是单独bq。
谢谢