2016-04-13 14 views
1

enter image description here Googleの大きなクエリで読み込まれた12 GBのcsvファイルでクエリを実行しようとしていますが、データセットでクエリを実行できません。データセットが正しくロードされているかどうかはわかりません。ペインのテーブルとして表示されますが、ジョブ履歴には表示されません。誰でも同じことを助けることができます。Google Big Query Error:CSVテーブルに多すぎるエラーが発生しました。行:1エラー:1

データセットが周りに1.2mmの記録と3728個の変数

求人IDあり、Googleのストレージバケットからロードされた:PG-US-ADV-X-DAT-AIA-プロト-1:bquijob_b951879_1540d02c1a4

+0

写真はどこにも近く、それらのテキストとしてとして有用です。たとえば、あなたの質問や回答が役に立たない将来のユーザーが写真を検索することはできません。関連テキストと問題を示すことができる[mcve]で[編集]してください。 – Mogsdad

答えて

1

をそのため、BigQueryに読み込まれていないCSVファイルに対してクエリを実行しているように見えますが、Google Cloud Storageに存在する連合テーブルがそのポイントを指しているだけです。

これは、基礎となるCSVファイルにエラーがあったように見えます:

Too many value in row starting at position:11398444388 in file:gs://syntheticpopulation-storage/Alldatamerged_Allgrps.csv 
Too many value in row starting at position:9252859186 in file:gs://syntheticpopulation-storage/Alldatamerged_Allgrps.csv 
... 

はこれが問題を診断するのに十分である場合は私に知らせてください。私はあなたがクエリの履歴を見れば、それらのメッセージをクエリジョブの警告として見ることができると信じています。

私は内部で3つのバグ提出されました:エラーメッセージの

  1. 悪い文法を。
  2. フェデレーテッド・テーブルの問題に起因するエラー・メッセージは、どのテーブルに問題があるかを伝えていないため診断できません。
  3. フェデレーテッド・テーブルの問題からのエラー・メッセージは、表示されていない警告ストリームにあるため、UIでアクション可能ではありません。
+0

こんにちはヨルダン..返事をありがとう。このテーブルを大きなクエリプラットフォームにロードするにはどうすればよいですか。サイズのために読み込まれていません(テーブルはストレージバケットに正しく格納されています)。私が5GBのサイズのテーブルをアップロードし、スキーマ構造とデータ型が正しく記述されているので、私が考えることができる他の理由はありません。あなたはお勧めしますか? –

+0

このcsvファイルをロードしようとしているロードジョブが失敗した場合は、失敗したロードジョブのジョブIDとエラーメッセージを指定できますか? –

+0

ヨルダンのコメントに画像/エラー(読み込みエラー)が追加されました –

5

スキーマを確認してください.1つの列にスキーマを含めるのを忘れている可能性があります。

+2

これは私の場合に起こったことですが、私はBQがより多くの情報を得るためにエラーメッセージを修正すべきだと思う。 –

+0

答えに加えて、これはデータ型の不一致の場合にも起こり得る。 – Shawn

0

私はinstructions in the GCP docsの後に同じ問題がありました。

これは2回目に失敗しましたbq loadですが、最初のものではありません。

ignore unknown valuesオプションを選択してBigQuery Webインターフェイスでジョブを繰り返すことがわかりました。

私はまだデータのエラーを検出していませんが、それを見て始めています。

1

job.errorsには、ジョブの詳細なエラーが含まれています。

これはどこにも書かれていないようですが、ソースコード:https://googlecloudplatform.github.io/google-cloud-python/0.20.0/_modules/google/cloud/bigquery/job.htmlと_AsyncJobのctrl + fで確認できます。

だからあなたWAIT_FOR_JOBのコードは次のようになります。コードやエラーの

def wait_for_job(job): 
    while True: 
     job.reload() 
     if job.state == 'DONE': 
      if job.error_result: 
       raise RuntimeError(job.errors) 
      return 
     time.sleep(1) 
+0

とても役に立ちます。 Benありがとう! –

関連する問題