2014-09-08 4 views
1

내가 기존 데이터가있는 테이블을 말해봐 열을 건너 뛰의 BigQuery : CSV에서로드, 같은 스키마,

Field1,Field2 
Value1,Value2 
... 

우리는을 만들어 데이터를로드 :

{ 'name' : 'Field1', 'type' : 'STRING' }, 
{ 'name' : 'Field2', 'type' : 'STRING' } 

우리의 데이터는 CSV입니다 CSV를 Google Cloud Storage (GCS)에서 직접로드하는 새로운 작업입니다. 우리의 데이터 파일은 이제 추가 열 및 다른 순서를,이 같은 데이터가 이제 구성되어 있음 :

Field1,Field3,Field2 
Value1,Value3,Value2 
... 

는 우리가 두 번째 열을 생략하고자하는로드 작업에 지정하는 방법에만 부하가인가 열 1과 3 (이름이 Field1과 Field2)?

나는, 예를 들어, service.jobs을 파이썬 API를 사용하고()를 삽입 (job_body)

는 기본적으로 나는 이런 식으로 뭔가를 할 :.

job_body = { 
    'projectId': projectId, 
    'configuration': { 
     'load': { 
     'sourceUris': [sourceCSV], 
     'schema': { 
      'fields': [ 
      { 
       'name': 'Field1', 
       'type': 'STRING' 
      }, 
      { # this would be the skipped field 
       'name': None 
       'skip': True 
      }, 
      { 
       'name': 'Field2', 
       'type': 'String' 
      }, 
      ] 
     }, 
     'destinationTable': { 
      'projectId': projectId, 
      'datasetId': datasetId, 
      'tableId': targetTableId 
     }, 
     } 
    } 
    } 

감사합니다!

답변

2

현재 그렇게 할 수는 없지만 흥미로운 기능 요청 일 수 있습니다. 언제든지 https://code.google.com/p/google-bigquery/issues/list에 추가하십시오. 3 열이있는 새 테이블로

  1. 가져 오기 :

    는 그 동안, 나는 2 단계 가져 오기를 할 것입니다.
  2. "SELECT column1, column2 FROM [newtable]"을 기존 테이블에 추가하십시오.
4

펠리페의 제안이 효과가 있습니다.

가 [선택] 스키마와 일치하지 않는 값이 포함 된 행을 수락 : 당신은 당신의 BigQuery에로드하고있는 CSV를 수정할 수 있다면 또 다른 가능성은, 부하 작업에 ignoreUnknownValues 플래그 될 것이다. 알 수없는 값은 무시됩니다. 알 수없는 값을 오류로 처리하는 기본값은 false입니다. CSV의 경우 줄 끝의 추가 값을 무시합니다. JSON의 경우이 옵션은 열 이름과 일치하지 않는 명명 된 값을 무시합니다.

그러나이 플래그를 사용하면 CSV의 열을 다시 정렬하거나 데이터를 JSON으로 포맷해야합니다.

관련 문제