Bigquery 表创建混乱
Posted
技术标签:
【中文标题】Bigquery 表创建混乱【英文标题】:Big Query Table Creation Confusion 【发布时间】:2015-08-13 04:27:54 【问题描述】:我必须创建一个大查询表,其架构如下
snippet:STRING,comment_date:TIMESTAMP
我的数据如下
"Love both of these brands , but the "" buy a $100k car , get or give a pair of $40 shoes "" message seems .",2015-06-22 00:00:00
"All Givens Best Commercial Ever",2015-06-22 00:00:00
我很困惑,因为这两行都被接受并插入到表中,尽管在第一行中所有的 sn-p 字符串都在双引号之间,但它也包含双引号和逗号
为什么大查询不会在那里混淆?
【问题讨论】:
让您的数据尽可能干净和有规律是个好主意。 RFC4180 是 CSV 文件的宽松标准,除其他事项外,指定逗号在带引号的字段中是可以的,并且字段中的引号应该加倍。正确的解析通常是一次 1 个字符。更丑陋的 CSV 文件不跟随它,发明或忽略重要的东西,比如引号转义。负责快速解析 CSV 的普通程序员或分析师会将 CSV 数据拆分为逗号,这对于引号字段或引号转义中的逗号是不正确的。 谢谢@Paul 我不知道这一点。这意味着大查询正在按上述方式处理它。 【参考方案1】:在解析 CSV 时,BigQuery 仅对不带引号的逗号进行拆分,并且当在带引号的字符串中遇到双引号 ""
时,它会将双引号 "
视为单个转义引号字符。因此,根据 BigQuery,您的输入是有效的 CSV。
【讨论】:
如果我在字符串中有一个新行怎么办?然后我需要一些工作。 你能推荐点什么吗 如果您设置了 allowQuotedNewlines 标志,那么您可以在引用的 CSV 字符串中包含换行符。 cloud.google.com/bigquery/docs/reference/v2/…以上是关于Bigquery 表创建混乱的主要内容,如果未能解决你的问题,请参考以下文章