我正在尝试加载一些ndjson数据。首先,创建表的过程非常完美:
additional-info
但是,undefined
命令不会:
> bq mk --table <project-id>:<my-dataset.newtable> newtable.schema.json
Table '<project-id>:<my-database.newtable>' successfully created.
还请注意:
我从BigQuery的网络界面运行该作业没有问题。
我已经通过bq load
命令将> bq load --source_format=NEWLINE_DELIMITED_JSON <project-id>:<my-dataset.newtable> gs://<project-id>.appspot.com/newtable.ndjson
BigQuery error in load operation: Not found: Project <project-friendly-name>
设置为默认项目,但是即使没有创建表,即使创建表,也会遇到相同的错误。
某些未正确设置的环境变量存在问题吗?
答案 0 :(得分:2)
bq load
命令通常遵循以下结构。
bq --location=[LOCATION] load --source_format=[FORMAT] [DATASET].[TABLE] [PATH_TO_SOURCE] [SCHEMA]
与标准bq load
命令一样,如果要在cli中登录的同一项目中加载数据,则不必提及该项目。另外,除非您在命令中设置了自动检测标志,否则您还需要提及该模式。
以下命令可让您识别您有权访问的项目。
gcloud config list
答案 1 :(得分:1)
好的。有趣的是,与bq mk
,bq load
不同的是,选择<project-id>
或[PROJECT_ID]:[DATASET].[TABLE]
中的bq init
(以及--location=[LOCATION]
选项合格的Cloud Storage URI作为文件)仍然无关。
我仍然必须运行:
gcloud config set project <project-id>
bq load --project_id=<project-id> ...
或
gcloud init
并选择目标项目作为默认项目。总而言之,这可行:
bq load --project_id=<project-id> --source_format=NEWLINE_DELIMITED_JSON <my-dataset.newtable> gs://<project-id>.appspot.com/newtable.ndjson
答案 2 :(得分:0)
我针对此错误的解决方案是我必须为location=[LOCATION]
命令省略bq load
选项。我的GCP项目没有看到任何默认位置。
答案 3 :(得分:0)
在 2021 年 5 月,当我对超过一定大小的文件使用 bq load 时,我仍然遇到了这个问题。
2020 年 8 月在错误跟踪器上描述的解决方法对我有用:https://github.com/googleapis/google-api-python-client/issues/1006
具体来说,我编辑了文件 ~/google-cloud-sdk/platform/bq/third_party/httplib2/python3/__init__.py .
找到这一行:
REDIRECT_CODES = frozenset((300, 301, 302, 303, 307, 308))
并从集合中删除数字 308。
我怀疑这不是正确的修复,但它让我继续前进,而且由于它只影响 bq 命令使用的 httplib2,因此希望不会有其他有害影响,但要小心。