我现有的查询:
bq load --field_delimiter="||" --skip_leading_rows=1 source.taxassessor gs://taxassessor/OFFRS_5_0_TAXASSESSOR_0001_001.txt taxassessor.txt
我得到的错误是:
Not enough positional args, still looking for destination_table
我试图模仿Web UI中的命令,我无法重现,因为Web UI不允许双管分隔符(UI上的限制?或解决方案?)
我有两个问题:
由于
答案 0 :(得分:0)
如何使用通配符,以便我可以获取文件002.txt,003.txt等类似OFFRS_5_0_TAXASSESSOR_0001 _ * .txt?
按照你的建议行事,例如:
bq load --field_delimiter="||" --skip_leading_rows=1 source.taxassessor gs://taxassessor/OFFRS_5_0_TAXASSESSOR_0001_*.txt taxassessor.txt
它应该已经有用了。
如何修复当前查询?
不确定为什么你收到这条消息因为一切似乎都是正确的......但它仍然不应该工作,因为你的分隔符有2个字符而且它们应该只有一个(想象一下,例如你的文件有字符串"abcd|||efg||hijk|||l"
,很难分辨出分隔符在哪里;它是前两个管道还是最后一个管道。
如果您无法更改分隔符,您可以做的一件事就是将BigQuery中的所有内容保存为整个STRING
字段。之后,您可以根据需要提取字段,例如:
WITH data AS(
select "alsdkfj||sldkjf" as field UNION ALL
select "sldkfjld|||dlskfjdslk"
)
SELECT SPLIT(field, "||") all_fields FROM data
all_fields
将包含文件中的所有列,然后您可以将结果保存到其他表中或运行您想要的任何分析。
作为建议,如果您可以将此分隔符更改为其他内容,只有一个字符可能会更好。