구글링하며 python에서 빅쿼리 데이터 사용하기 시도중 겪은 에러들
빅쿼리에 프로젝트-테이블도 만들고,
'API 및 서비스-사용자 인증 정보' 에서 서비스 계정 만들고,
키(.json) 파일도 다운받았다.
그리고 python에서 아래 코드를 돌리면, 테이블이 dataframe 형태로 나와야 한다.
import glob
from google.cloud import bigquery
from google.oauth2 import service_account
# 서비스 계정 키 JSON 파일 경로
key_path = glob.glob("../config/*.json")[0]
# Credentials 객체 생성
credentials = service_account.Credentials.from_service_account_file(key_path)
# GCP 클라이언트 객체 생성
client = bigquery.Client(credentials = credentials,
project = credentials.project_id)
# 데이터 조회 쿼리
sql = f"""
SELECT *
FROM data-analysis-413914.kobis.daily_box_office
"""
# 데이터 조회 쿼리 실행 결과
query_job = client.query(sql)
# 데이터프레임 변환
df = query_job.to_dataframe()
df.head()
하지만 총 3개의 error를 맛보고 겨우겨우 정상적으로 돌렸다...
같은 어려움을 겪고 있을지도 모르는 사람에게 error 해결방법을 공유하고자 이 글을 작성한다.
1. request is missing required authentication credential
request is missing required authentication credential. expected oauth 2 access token, login cookie or other valid authentication credential.
인증 자격 증명이 누락되었다는 에러
‘IAM’ -> 엑세스 권한 부여 -> API KEY의 client_email 입력 -> 역할(BigQuery 관리자) 선택후 저장
하면 error 해결!
참고자료: https://velog.io/@suminwooo/빅쿼리-파이썬-연동1
2. Unexpected string literal
BadRequest: 400 Syntax error: Unexpected string literal 'data-analysis-413914.kobis.daily_box_office' at [3:6]
예상치 못한 문자 에러
이 에러는 쿼리를 아래와 같이 작성할 때 발생한다.
# error sql
sql = f"""
SELECT *
FROM 'data-analysis-413914.kobis.daily_box_office'
"""
single quote(')를 사용하지 말고 backticks(`)를 사용할 것
아니면 테이블 명을 따로 감싸지 않아도 된다.
sql = f"""
SELECT *
FROM `data-analysis-413914.kobis.daily_box_office`
"""
sql = f"""
SELECT *
FROM data-analysis-413914.kobis.daily_box_office
"""
참고자료: https://sql.info/d/bigquery-syntax-error-unexpected-string-literal-dataset-table-at-position
3. 'db-dtypes' package
ValueError: Please install the 'db-dtypes' package to use this function.
db-dtypes 패키지가 필요하다는 에러
에러를 맞이하고, 일단 'query_job = client.query(sql)' 코드는 넘겼다는 기쁨과
단순히 pip install db-dtypes만 하면 될거라는 방심
하지만 안되죠?
구글링해보니 동일한 오류가 google-cloud-bigquery v3.0.0 이상부터 발생한다고...
패키지 삭제 후, 2.34.1 버전으로 재설치
> pip install google-cloud-bigquery==2.34.1
참고자료: https://github.com/feast-dev/feast/issues/2537
드디어 나오는 데이터프레임!!!
이제 본격적으로 빅쿼리 써야지...후후
'Python' 카테고리의 다른 글
개발 환경 셋팅 (1) | 2024.05.31 |
---|---|
Python BigQuery 사용하기 - 에러 해결방법 (1) | 2024.02.12 |
알쓸코드 - 데이터 분석 (1) | 2023.11.04 |
[Python] 리스트 컴프리헨션(list comprehension) (0) | 2021.10.12 |
Python으로 잔여백신 상태 확인하기 (5) | 2021.07.25 |
댓글