我使用来自LIWC(语言查询和字数统计)的数据丰富了reddit评论的公共数据集。我有60个文件á600mb。现在的想法是上传到BigQuery,将它们组合在一起并分析结果。唉,我遇到了一些问题。
对于第一次测试,我有一个200行和114列的测试样本。 Here is a link to the csv i used
我第一次问Reddit并且fhoffa提供了一个非常好的答案。问题似乎是body_raw列中的换行符(/ n),因为redditor通常在文本中包含它们。似乎BigQuery无法处理它们。
我试图将我转移到存储的原始数据转移回BigQuery,未经编辑,未触及,但同样的问题。 BigQuery甚至无法处理来自BigQuery的原始数据......?
无论如何,我可以在其他程序(例如R)中没有问题地打开csv,这意味着csv本身没有损坏或架构不一致。所以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万行。 或者您有其他想法吗?
答案 0 :(得分:0)
我再次检查了,我能够毫无问题地加载你在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
:某些行中有一个额外的列。我将此列添加到列列表中。当它说'#34;位置参数太多时,",因为你的命令说:
tt.delete_201607a myproject.newtablename
好吧,tt.delete_201607a
是我命名我的桌子的方式。 myproject.newtablename
就是你如何命名你的桌子。选择一个,而不是两个。
您确定无法加载保留在Dropbox上的示例文件吗?或者您从我在该文件中找不到的行中收到错误?