BigQuery

테이블 생성

bigquery에서 create native table from gcs로 schema는 auto detect. Header rows to skip:은 1. 컬럼이 string으로 잡히면 에러가 거의 안나는데, 이번에는 float으로 잡혀서 문자열에 대해 모두 에러 발생. invalid columns가 많을 경우 Number of errors allowed:를 충분히 늘려주면 도움이 된다. (1000 이상) bigquery dataset은 위치를 default로 한다. seoul(asia-northeast3)로 강제 지정했더니 gcs에서 import시,

Cannot read and write in different locations: source: asia, destination: asia-northeast3

오류 발생. raw file은 gsutil을 이용해 gcs로 업로드 하는데, 사내 유선망은 100MB/s가 나와서 5.3G도(1천만건) 어렵지 않게 업로드 완료.

설치

Python 설치

BigQuery 쿼리 결과를 로컬 pandas로 내려서 분석 시도. Data Studio는 사용법도 다르고 무엇보다 data source connection 오류가 있어서 데이터를 부르지도 못했다. 로컬 분석은 가이드1를 참고했다.

# Linux
$ pip install --upgrade google-cloud-bigquery[bqstorage,pandas]

# OSX
$ pip install --upgrade google-cloud-bigquery
# AttributeError: module 'grpc.experimental.aio' has no attribute 'Call' 오류로 인해
$ pip install --upgrade grpcio

pip는 sudo 설치해도 사용할 수 없기 때문에, 다음과 같이 owner 조정

$ cd opt/
$ chown -R gcp-user anaconda3/
$ pip install google-cloud-bigquery google-cloud-bigquery-storage

conda는 여전히 설치되지 않음.

활용

인증

인증 문제는 GCE 내에서,

$ gcloud auth application-default login

로 직접 처리. CLI 기본 인증,

$ gcloud auth list

다르기 때문에 주의 필요.

DataFrame 맵핑

>>> %load_ext google.cloud.bigquery
>>> %%bigquery df --use_bqstorage_api
select * from ds.1m where vin = 'KMTHA81BBxxx'
>>> type(df)
pandas.core.frame.DataFrame

쿼리 결과가 dataframe에 맵핑된다. invalid value 때문에 모든 컬럼이 STRING이 되었다.

Jupyter Notebook

>>> %%bigquery df --use_bqstorage_api
select temperature, count(temperature) from ds.10m 
group by temperature having 
temperature != '-40.0' and
temperature != '\\N'
>>> df = df.sort_values(by='temperature')
>>> df.plot.bar(x='temperature', y='f0_', figsize=(20,10))

data manipulation 과정(column type 변경, sorting) 정리 필요

Python Code

Python에서 BigQuery 호출 코드

Last Modified: 2020/09/06 16:15:08


Docker  ·  Kubernetes  ·  Zsh  ·  Software Deployment  ·  GCP  ·  AI Platform  ·  PyData  ·  GCS  ·  BigQuery  ·  XGBoost  ·  Deno  ·  JetBrains  ·  수식  ·  2020 Book Reports  ·  Santander Product Recommendation  ·  GPU Data Science  ·  Python  ·  Markov Decision Process  ·  통계학  ·  통계학 책  ·  Front-End  ·  머신러닝  ·  Activation, Cost Functions  ·  알고리즘  ·  자료구조  ·  비지니스  ·  AWS  ·  NLP 링크  ·  알고리즘 링크  ·  머신러닝 링크  ·  사회심리학  ·  Information Retrieval  ·  통계학 응용  ·  OOP  ·  2019 Book Reports  ·  Android Development  ·  데이터 사이언스  ·  인공지능  ·  진화생물학  ·  이산수학  ·  수학  ·  미래학  ·  Project Management  ·  LifeHacks  ·  C++  ·  2017 Book Reports  ·  Decision Tree  ·  TensorRT  ·  NLP  ·  Hadoop, Spark  ·  데이터 마이닝  ·  CNN, RNN  ·  2018 Book Reports  ·  운영체제  ·  머신러닝 분류기  ·  거리  ·  Support Vector Machine  ·  OAuth 2.0  ·  Naive Bayes  ·  Jupyter Notebooks  ·  RSA  ·  컴파일러  ·  딥러닝  ·  Word Embedding  ·  컴퓨터시스템구조  ·  영어  ·  Go  ·  Scikit Learn  ·  NLP 실험  ·  MySQL  ·  Keras  ·  Java
is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY 4.0.
This site design was brought from Distill.