BigQuery 错误从云存储传输 csv
Posted
技术标签:
【中文标题】BigQuery 错误从云存储传输 csv【英文标题】:BigQuery error transferring csv from cloud storage 【发布时间】:2021-06-10 12:55:33 【问题描述】:我正在尝试在 bigquery 中创建一个表,从谷歌存储中传输一个 csv。这个 csv 有 3000 万行,我得到了这些错误,例如:
“读取数据时出错,错误消息:从位置 254333656 开始的行中的值过多。找到 4 列,而预期为 3”
“读取数据时出错,错误消息:从位置 254312106 开始的行中的值过多。找到 4 列,而预期为 3。”
这很尴尬,我的 csv 中没有所有这些行。它在第 2.5 亿行发现了一个错误。怎么可能?
谢谢
【问题讨论】:
您能否检查一下 csv 文件是否为 UTF-8 格式,或者您能否提供有关加载过程的更多详细信息? 是的,文件是 UTF-8。这是我从中下载 csv 文件 zenodo.org/record/2539424 的 lin,它是“itwiki.wikilink_graph.2018-03-01.csv.gz”文件。我无法在 libreoffice 上的笔记本电脑上打开它,我只是用文本编辑器扫描了一下。它有四列,描述***页面和每个页面的链接。您是否认为问题可能是某些单元格包含引号?我真的真的不知道可能是哪个问题 是的,引号可能是个问题。顺便说一句,我认为您提到的位置编号 - 不是行号,而是文件开头的字符(或字节)编号。 您无法打开文件,但您可以在 linux 上执行 head(例如在 Cloud Shell 上)。您可以粘贴第 3 行(head -3错误表明position
254333656 存在问题,而不是row
。
这意味着错误位于距离文件开头 254333656 个字符处(这使得调试非常困难)。
为了解决您的问题,您可以:
检查您的标题是否确实有 4 列(BQ 似乎期望 3 列,但您说您期望 4)
也许可以在您的 bq 加载语句中尝试使用标志 --allow_jagged_row=true。
【讨论】:
以上是关于BigQuery 错误从云存储传输 csv的主要内容,如果未能解决你的问题,请参考以下文章
使用云功能从云存储中将数据加载到BigQuery中(替代功能?)
400 Bad Request 错误尝试从云存储加载 bigquery 表