Как импортировать JSON из файла в облачном хранилище в Bigquery

Я пытаюсь импортировать файл (json.txt) из облачного хранилища в Bigquery через API и выдает ошибки. Когда это делается через веб-интерфейс, он работает и не имеет ошибок (я даже установил maxBadRecords = 0). Может кто-нибудь сказать мне, что я здесь делаю неправильно? Код неправильный, или мне нужно где-то изменить некоторые настройки в Bigquery?

Этот файл представляет собой обычный текстовый файл utf-8, содержимое которого выглядит следующим образом: Ive сохранил документы по импорту bigquery и json.

{"person_id":225,"person_name":"John","object_id":1}
{"person_id":226,"person_name":"John","object_id":1}
{"person_id":227,"person_name":"John","object_id":null}
{"person_id":229,"person_name":"John","object_id":1}

и при импорте задания выдает следующую ошибку: «Значение не может быть преобразовано в ожидаемый тип». для каждой отдельной строки.

    {
    "reason": "invalid",
    "location": "Line:15 / Field:1",
    "message": "Value cannot be converted to expected type."
   },
   {
    "reason": "invalid",
    "location": "Line:16 / Field:1",
    "message": "Value cannot be converted to expected type."
   },
   {
    "reason": "invalid",
    "location": "Line:17 / Field:1",
    "message": "Value cannot be converted to expected type."
   },
  {
    "reason": "invalid",
    "location": "Line:18 / Field:1",
    "message": "Value cannot be converted to expected type."
   },
   {
    "reason": "invalid",
    "message": "Too many errors encountered. Limit is: 10."
   }
  ]
 },
 "statistics": {
  "creationTime": "1384484132723",
  "startTime": "1384484142972",
  "endTime": "1384484182520",
  "load": {
   "inputFiles": "1",
   "inputFileBytes": "960",
   "outputRows": "0",
   "outputBytes": "0"
  }
 }
}

Файл доступен здесь:http://www.sendspace.com/file/7q0o37

и мой код и схема следующие:

def insert_and_import_table_in_dataset(tar_file, table, dataset=DATASET)
config= {
  'configuration'=> {
      'load'=> {
        'sourceUris'=> ["gs://test-bucket/#{tar_file}"],
        'schema'=> {
          'fields'=> [
            { 'name'=>'person_id', 'type'=>'INTEGER', 'mode'=> 'nullable'},
            { 'name'=>'person_name', 'type'=>'STRING', 'mode'=> 'nullable'},
            { 'name'=>'object_id',  'type'=>'INTEGER', 'mode'=> 'nullable'}
          ]
        },
        'destinationTable'=> {
          'projectId'=> @project_id.to_s,
          'datasetId'=> dataset,
          'tableId'=> table
        },
        'sourceFormat' => 'NEWLINE_DELIMITED_JSON',
        'createDisposition' => 'CREATE_IF_NEEDED',
        'maxBadRecords'=> 10,
      }
    },
  }

result = @client.execute(
  :api_method=> @bigquery.jobs.insert,
  :parameters=> {
     #'uploadType' => 'resumable',          
      :projectId=> @project_id.to_s,
      :datasetId=> dataset},
  :body_object=> config
)

# upload = result.resumable_upload
# @client.execute(upload) if upload.resumable?

puts result.response.body
json = JSON.parse(result.response.body)    
while true
  job_status = get_job_status(json['jobReference']['jobId'])
  if job_status['status']['state'] == 'DONE'
    puts "DONE"
    return true
  else
   puts job_status['status']['state']
   puts job_status 
   sleep 5
  end
end
end

Может кто-нибудь сказать мне, что я делаю не так? Что мне исправить и где?

Также в какой-то момент в будущем я ожидаю использовать сжатые файлы и импортировать их из них - хорошо ли для этого "tar.gz" или мне нужно сделать его только ".gz"?

Заранее благодарю за помощь. Ценить это.

Ответы на вопрос(1)

Ваш ответ на вопрос