【问题标题】:Too many errors [invalid] ecountered when loading data into bigquery将数据加载到 bigquery 时遇到太多错误 [无效]
【发布时间】:2016-07-14 09:12:43
【问题描述】:

我使用来自 LIWC(语言查询和字数统计)的数据丰富了 reddit cmets 的公共数据集。我有 60 个文件,大小为 600mb。现在的想法是上传到 BigQuery,将它们放在一起并分析结果。唉,我遇到了一些问题。

对于第一次测试,我有一个包含 200 行和 114 列的测试样本。 Here is a link to the csv i used

我首先在Reddit 上提问,fhoffa 提供了一个非常好的答案。问题似乎是 body_raw 列中的换行符 (/n),因为 redditors 经常将它们包含在他们的文本中。 BigQuery 似乎无法处理它们。

我尝试将已传输到存储的原始数据传输回 BigQuery,未经编辑,未触及,但同样的问题。 BigQuery 甚至无法处理来自 BigQuery 的原始数据...?

反正我在R等其他程序中打开csv没有问题,说明csv本身没有损坏或者schema不一致。所以 fhoffa 的命令应该摆脱它。

bq load --allow_quoted_newlines --allow_jagged_rows --skip_leading_rows=1 tt.delete_201607a myproject.newtablename gs://my_testbucket/dat2.csv body_raw,score_hidden,archived,name,author,author_flair_text,downs,created_utc,subreddit_id,link_id,parent_id,score,retrieved_on,controversiality,gilded,id,subreddit,ups,distinguished,author_flair_css_class,WC,Analytic,Clout,Authentic,Tone,WPS,Sixltr,Dic,function,pronoun,ppron,i,we,you,shehe,they,ipron,article,prep,auxverb,adverb,conj,negate,verb,adj,compare,interrog,number,quant,affect,posemo,negemo,anx,anger,sad,social,family,friend,female,male,cogproc,insight,cause,discrep,tentat,certain,differ,percept,see,hear,feel,bio,body,health,sexual,ingest,drives,affiliation,achieve,power,reward,risk,focuspast,focuspresent,focusfuture,relativ,motion,space,time,work,leisure,home,money,relig,death,informal,swear,netspeak,assent,nonflu,filler,AllPunc,Period,Comma,Colon,SemiC,QMark,Exclam,Dash,Quote,Apostro,Parenth,OtherP

输出是:

Too many positional args, still have ['body_raw,score_h...]

如果我从命令中删除“tt.delete_201607a”,我会收到我现在经常看到的相同错误消息:

BigQuery error in load operation: Error processing job 'xx': Too many errors encountered.

所以我不知道在这里做什么。我应该用 Python 摆脱 /n 吗?这可能需要几天时间(尽管我不确定,我不是程序员),因为我的完整数据集大约有 5500 万行。 或者你有什么其他想法?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    我再次检查,我能够毫无问题地加载您留在 Dropbox 上的文件。

    首先我确保下载您的原始文件:

    wget https://www.dropbox.com/s/5eqrit7mx9sp3vh/dat2.csv?dl=0
    

    然后我运行以下命令:

    bq load --allow_quoted_newlines --allow_jagged_rows --skip_leading_rows=1 \
       tt.delete_201607b dat2.csv\?dl\=0 \
       body_raw,score_hidden,archived,name,author,author_flair_text,downs,created_utc,subreddit_id,link_id,parent_id,score,retrieved_on,controversiality,gilded,id,subreddit,ups,distinguished,author_flair_css_class,WC,Analytic,Clout,Authentic,Tone,WPS,Sixltr,Dic,function,pronoun,ppron,i,we,you,shehe,they,ipron,article,prep,auxverb,adverb,conj,negate,verb,adj,compare,interrog,number,quant,affect,posemo,negemo,anx,anger,sad,social,family,friend,female,male,cogproc,insight,cause,discrep,tentat,certain,differ,percept,see,hear,feel,bio,body,health,sexual,ingest,drives,affiliation,achieve,power,reward,risk,focuspast,focuspresent,focusfuture,relativ,motion,space,time,work,leisure,home,money,relig,death,informal,swear,netspeak,assent,nonflu,filler,AllPunc,Period,Comma,Colon,SemiC,QMark,Exclam,Dash,Quote,Apostro,Parenth,OtherP,oops
    

    正如 reddit 中提到的,您需要以下选项:

    • --allow_quoted_newlines:某些字符串中有换行符,因此 CSV 不是严格用换行符分隔的。
    • --allow_jagged_rows:并非每一行都有相同的列数。
    • ,oops:在某些行中有一个额外的列。我将此列添加到列列表中。

    当它说“位置参数太多”时,这是因为你的命令说:

    tt.delete_201607a myproject.newtablename
    

    嗯,tt.delete_201607a 是我为我的表命名的方式。 myproject.newtablename 是您命名表的方式。选择一个,而不是两个。

    您确定无法加载您留在 Dropbox 上的示例文件吗?或者您从我在该文件中找不到的行中得到错误?

    【讨论】:

    • 啊好吧!!好吧,在您的帮助下,它现在工作了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多