커다란 csv 파일과 엑셀 파일을 읽었으며 필요한 필드와 유형에 따라 필요한 create create table 스크립트를 만듭니다. 그런 다음 생성 된 테이블에 데이터를 삽입하십시오.bigquery-python 라이브러리를 통해 BigQuery에 많은 양의 데이터를 삽입하십시오.
나는 this을 읽고 많은 양의 데이터를 tabledata.insertAll()
대신 jobs.insert()
으로 보내야한다는 것을 알았습니다.
작은 크기의 파일은 큰 파일이 아닙니다.
result = client.push_rows(datasetname,table_name,insertObject) # insertObject is a list of dictionaries
라이브러리의 push_rows을 사용하면이 오류가 발생합니다.
[Errno 10054] An existing connection was forcibly closed by the remote host
우분투에서. 내가 BigQuery-Python 코드를 갔을 때
[Errno 32] Broken pipe
는 그래서 table_data.insertAll()
을 사용합니다.
어떻게이 라이브러리로이 작업을 수행 할 수 있습니까? Google 저장 용량을 통해 업로드 할 수는 있지만 직접 업로드 방법이 필요합니다.
은 그냥 OP에 대한 링크를 추가 했 참조! –
oops, 재귀 수정 중! –
@FelipeHoffa gsutil 내부에서 파이썬 코드를 사용할 수 있습니까? 직접 csv 파일 경로를 지정하고 업로드 할 때 일부 열 유형 문제가있었습니다. 그래서 나는 csv를 읽고 그에 따라 필드를 캐스팅 할 수 있습니다. 내가 그들을 캐스팅 한 후에 표에 객체를 삽입하는 방법이 없다 (사전 목록 일 수 있음)? –