我想知道是不是有任何方法可以将引号内的分隔符仅视为字符而不是分隔符
Posted
技术标签:
【中文标题】我想知道是不是有任何方法可以将引号内的分隔符仅视为字符而不是分隔符【英文标题】:I was wondering if there is any way to treat delimiters inside quotes as merely characters and not delimiters我想知道是否有任何方法可以将引号内的分隔符仅视为字符而不是分隔符 【发布时间】:2017-07-06 16:54:11 【问题描述】:我有大量使用相同架构制作的文件。它们被放入以空格分隔的格式。示例文件行如下所示:
1 2 abc def "g h" 3
当我尝试使用模式 INT、INT、STRING、STRING、STRING、INT 时,由于引号内的空格,它对我来说失败了。 我知道这是错误所在,因为如果我将示例选项卡分隔而不是空格分隔,则不会发生此类错误,但这对我来说处理我的所有数据是不可行的。我想知道是否有任何方法可以在文件上传中表明引号中的分隔符不应被视为分隔符,而应被视为字符? (而是将所有引用的文本视为一个字符串。)
我知道这个功能适用于换行符,所以我想知道分隔符。
谢谢!
【问题讨论】:
你正在运行什么命令,错误是什么?bq load
应该能够处理带引号的字符串。
我通过他们的门户运行它。我收到一条错误消息,该行包含太多架构元素
具体错误是:"Too many values in row started at position:" 然后是行位置。当我通过 bq load 运行它时,它也不起作用。
【参考方案1】:
我想通了。错误是文件末尾有一个额外的分隔符。现在我只需要在上传之前修剪文件的每一行。
【讨论】:
如果你添加一个额外的列,而不是遍历每一行删除最后一个字符呢? 因为我有太多的数据来做这件事。我不关心支付存储费用,我更关心速度。 我不明白额外的空列会带来什么速度问题 - 也没有存储成本,因为它会是空的。 我是说这没有问题。我是说遍历每个文件并在最后去掉多余的字符是有问题的。 事实上,我最终就是这么做的。以上是关于我想知道是不是有任何方法可以将引号内的分隔符仅视为字符而不是分隔符的主要内容,如果未能解决你的问题,请参考以下文章