본문 바로가기
프로그래밍/Python

[GCP]Bigquery로 Dataframe전달할때 GenericGBQException 에러해결하기

by Mr.noobiest 2022. 8. 10.

Python을 사용하여  Excel파일을 Dataframe 형태로 불러온 후 전처리를 진행하였다,

완료된 Dataframe 파일을 DB형식으로 Bigquery로 저장하려고 하는데 아래와 같은 에러가 발생하였다.

 

 

GenericGBQException : Reason: 400 POST https://bigquery.googleapis.com/bigquery/v2/projects/프로젝트명/datasets/데이터셋명/tables?prettyPrint=false: Invalid field 

name "컬럼명". Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 300 characters long.

 

 

간단하게 해석하자면 어떤 특정 컬럼명이 Bigquery의 조건을 만족하지 않아 Bigquery에서 거부하였다 라는 의미이다.

 

Dataframe의 컬럼을 Bigquery에 입력할때는 다음 조건을 만족해야한다.

 

1) 띄어쓰기가 있어선 안된다(대신 _를 사용하면된다)

2) 괄호는 사용할 수 없다( ()가 들어가면 에러가  발생한다)

3) 특수문자 사용 불가

4) 300자 이하여야한다.

 

 

엑셀 파일을 직접 수정하거나 아래와 같이 Dataframe 의 reindex를 사용해도 된다.

DataFrame.rename(columns={'기존컬럼명': '변경할_컬럼명', '기존컬럼명2': '변경할_컬럼명2'}, inplace=True)

 

이후 전송하면 에러 없이 정상 기입된다.

728x90
반응형