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 表创建混乱的主要内容,如果未能解决你的问题,请参考以下文章

从 Bigquery 中的原始表主动创建洞察表

通过 GAS 创建 BIGQUERY 表

创建按一/多列分区的 BigQuery 外部表

在 BigQuery 中自动创建表

Bigquery 表通过 Python 创建和加载数据

在 Bigquery 中为多个 CSV 文件自动创建表