BQ shell 使用 write_disposition 作为写入附加加载数据存储时出错

Posted

技术标签:

【中文标题】BQ shell 使用 write_disposition 作为写入附加加载数据存储时出错【英文标题】:Error in BQ shell Loading Datastore with write_disposition as Write append 【发布时间】:2015-03-26 10:41:16 【问题描述】:

1:我尝试在现有表上加载 [使用数据存储文件] 2. Bq Shell 要求我添加 write_disposition 以写入追加以加载到现有表 3.如果我执行上述操作,会抛出如下错误:

负载--source_format = DATASTORE_BACKUP --write_disposition = WRITE_APPEND --allow_jagged_rows =无sample_red.t1estchallenge_1 GS://test.appspot.com/bucket/ahFzfnZpcmdpbi1yZWQtdGVzdHJBCxIcX0FFX0RhdGFzdG9yZUFkbWluX09wZXJhdGlvbhiBwLgCDAsSFl9BRV9CYWNrdXBfSW5mb3JtYXRpb24YAQw.entity.backup_info P>

错误解析命令:flag --allow_jagged_rows=None: ('Non-boolean argument to boolean flag',None)

我尝试了允许锯齿行 = 0 并允许锯齿行 = 无,没有任何工作只是同样的错误。 请就此提出建议。 更新: 正如 Mosha 建议的那样 --allow_jagged_rows=false 已经奏效。它应该在 --write_disposition=Write_truncate 之前。但这导致了另一个编码问题。谁能说出 DATASTORE_BACKUP 的编码类型应该是什么?我尝试了 --encoding=UTF-8 和 --encoding=ISO-8859。

负载--source_format = DATASTORE_BACKUP --allow_jagged_rows =假--write_disposition = WRITE_TRUNCATE sample_red.t1estchallenge_1 GS://test.appspot.com/STAGING/ahFzfnZpcmdpbi1yZWQtdGVzdHJBCxIcX0FFX0RhdGFzdG9yZUFkbWluX09wZXJhdGlvbhiBwLgCDAsSFl9BRV9CYWNrdXBfSW5mb3JtYXRpb24YAQw.entityname.backup_info P>

请指教。

【问题讨论】:

你现在用“none”分配布尔值吗? @Patrice 我刚刚尝试了所有选项,例如 0 0r None,最后是 false,因为 value 帮助了我。但是现在它已经转向了新问题——即它不能采用UTF-8 [csv] 或ISO-8859 的编码类型。 int() 参数必须是字符串或数字,而不是 'Nonetype' - 是错误 “所有选项”是什么意思?...布尔值是真/假...无论如何。您的编辑实际上是一个新问题,您应该将每个问题都封装在自己的帖子中。 Stack 与传统论坛的不同之处在于 :)。 如果 mosha 的回答对您有所帮助,通常您应该投票/接受(他的回答旁边的箭头和/或复选标记)。阅读导览,它会有所帮助:) 您为什么不接受 mosha 的回答并提出新问题?这是可怕的堆栈溢出礼仪:\ 【参考方案1】:

您应该使用带有布尔参数的“false”(或“true”),即

--allow_jagged_rows=false

【讨论】:

以上是关于BQ shell 使用 write_disposition 作为写入附加加载数据存储时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 将现有 BQ 表中的列添加到另一个 BQ 表

尝试使用 Apps 脚本查询 BQ 时出错

使用 bq 命令行覆盖表

用于扩展或增强 bq 命令行的 Google BigQuery bq 命令行 SDK

bq 命令行工具使用 --format=none 暂时挂起吃内存

Google BQ:运行参数化查询,其中参数变量是BQ表目标