BiqQuery命令行加载查询 - 使用JSON表模式

时间:2016-01-07 11:24:48

标签: json csv google-bigquery

我正在尝试加载逗号分隔的测试文件'Davetest.csv',并使用文件'testjson.json'中保存的JSON模式

但是我无法正确识别表模式参数。

load mydataset.testy gs://paps1/davetest.csv gs://paps1/testjson.json

给了我

  

加载操作中的BigQuery错误:以下值无效:   //PAPS1/TESTJSON.JSON不是有效值

我尝试了没有表模式的路径(ieload mydataset.testy gs://paps1/davetest.csv testjson.json),这让我觉得我试图用第一个内联编写模式'testjson.json'的字段名,因此也失败了。

这两个文件都保存在同一个存储桶中的GCS上。

显然我做的事情根本就是错误的,但据我所知,我见过的所有代码示例都使用了上面的结构。

有人可以提出建议吗?

2 个答案:

答案 0 :(得分:2)

我认为" bq命令行工具的文档"还不够清楚! https://cloud.google.com/bigquery/bq-command-line-tool#creatingtablefromfile

相反,请运行>检查示例 bq帮助加载
它们更具体地显示了架构的允许选项:

Examples:  
bq load ds.new_tbl ./info.csv ./info_schema.json  
bq load ds.new_tbl gs://mybucket/info.csv ./info_schema.json  
bq load ds.small gs://mybucket/small.csv name:integer,value:string  
bq load ds.small gs://mybucket/small.csv field1,field2,field3  

正如您现在所看到的,架构文件应该是bq工具的本地文件

当然,如果本地文件在某种程度上不适合您的设计,那么使用内联文本架构仍然是可选的

答案 1 :(得分:0)

我遇到了同样的问题。为了避免这种情况,我尝试从本地磁盘加载模式文件,并且运行起来。