BigQuery ↔ Pandas 간 읽기/쓰기
소개
BigQuery 클라이언트 라이브러리 google-cloud-bigquery
그 래퍼의 pandas-gbq
를 사용하는 방법을 씁니다.
※ Google은 google-cloud-bigquery
를 사용하고 싶다.
h tps : // c ぉ d. 오, ぇ. 코 m/비g 쿠에 ry/도cs/판다 s-gbq-미g라치온? hl = 그럼
환경
GCP 계정 등록
【이미지로 설명】 Google Cloud Platform (GCP) 무료 평가판으로 계정 등록
Google Cloud SDK 설치
Google Cloud SDK 설치 ~ 초기화
프로젝트 만들기
Google Cloud SDK로 프로젝트 만들기
서비스 계정 / 서비스 계정 키 만들기
Python에서 GCS에 액세스할 수 있도록 서비스 계정/서비스 계정 키를 만듭니다.
서비스 계정 생성
gcloud iam service-accounts create サービスアカウントネーム \
--display-name サービスアカウントディスプレイネーム \
지금 프로젝트에 연결되어 있는 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# etag: BwWeTrntoao=
# version: 1
서비스 계정에 권한 부여
BigQuery 관리자 권한 부여
gcloud projects add-iam-policy-binding プロジェクトID \
--member serviceAccount:サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com \
--role roles/bigquery.admin
role 목록
다시 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# - members:
# - serviceAccount:[email protected]
# role: roles/bigquery.admin
# etag: BwWeTz6vIBY=
# version: 1
서비스 계정 키 생성
$ gcloud iam service-accounts keys create ./anata_no_key.json \
--iam-account サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com
디렉토리 구성
.
├── anata_no_key.json
└── working/
└── main.py
google-cloud-bigquery를 사용하는 경우
google-cloud-bigquery
를 pip로 설치
$ pip install google-cloud-bigquery
쿼리 결과를 DataFrame에서 가져오기
main.pyimport os
from google.cloud import bigquery
from IPython.display import display
# 自ファイルのディレクトリを取得
cwd = os.path.dirname(os.path.abspath(__file__))
# 環境変数に設定
key_path = '{}/../credentials.json'.format(cwd)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = key_path
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
client = bigquery.Client(project=project_id)
sql = f"""
select col1, col2, col3
from {dataset_id}.{table_id}
limit 100
"""
df = client.query(sql).to_dataframe()
display(df)
pandas-gbq를 사용하는 경우
pandas-gbq
를 pip로 설치
$ pip install pandas-gbq
쿼리 결과를 DataFrame에서 가져오기
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
DataFrame을 BigQuery의 테이블에 씁니다.
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Google Cloud SDK 설치 ~ 초기화
프로젝트 만들기
Google Cloud SDK로 프로젝트 만들기
서비스 계정 / 서비스 계정 키 만들기
Python에서 GCS에 액세스할 수 있도록 서비스 계정/서비스 계정 키를 만듭니다.
서비스 계정 생성
gcloud iam service-accounts create サービスアカウントネーム \
--display-name サービスアカウントディスプレイネーム \
지금 프로젝트에 연결되어 있는 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# etag: BwWeTrntoao=
# version: 1
서비스 계정에 권한 부여
BigQuery 관리자 권한 부여
gcloud projects add-iam-policy-binding プロジェクトID \
--member serviceAccount:サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com \
--role roles/bigquery.admin
role 목록
다시 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# - members:
# - serviceAccount:[email protected]
# role: roles/bigquery.admin
# etag: BwWeTz6vIBY=
# version: 1
서비스 계정 키 생성
$ gcloud iam service-accounts keys create ./anata_no_key.json \
--iam-account サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com
디렉토리 구성
.
├── anata_no_key.json
└── working/
└── main.py
google-cloud-bigquery를 사용하는 경우
google-cloud-bigquery
를 pip로 설치
$ pip install google-cloud-bigquery
쿼리 결과를 DataFrame에서 가져오기
main.pyimport os
from google.cloud import bigquery
from IPython.display import display
# 自ファイルのディレクトリを取得
cwd = os.path.dirname(os.path.abspath(__file__))
# 環境変数に設定
key_path = '{}/../credentials.json'.format(cwd)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = key_path
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
client = bigquery.Client(project=project_id)
sql = f"""
select col1, col2, col3
from {dataset_id}.{table_id}
limit 100
"""
df = client.query(sql).to_dataframe()
display(df)
pandas-gbq를 사용하는 경우
pandas-gbq
를 pip로 설치
$ pip install pandas-gbq
쿼리 결과를 DataFrame에서 가져오기
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
DataFrame을 BigQuery의 테이블에 씁니다.
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Python에서 GCS에 액세스할 수 있도록 서비스 계정/서비스 계정 키를 만듭니다.
서비스 계정 생성
gcloud iam service-accounts create サービスアカウントネーム \
--display-name サービスアカウントディスプレイネーム \
지금 프로젝트에 연결되어 있는 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# etag: BwWeTrntoao=
# version: 1
서비스 계정에 권한 부여
BigQuery 관리자 권한 부여
gcloud projects add-iam-policy-binding プロジェクトID \
--member serviceAccount:サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com \
--role roles/bigquery.admin
role 목록
다시 권한 확인
gcloud projects get-iam-policy mypj-id
# bindings:
# - members:
# - user:[email protected]
# role: roles/owner
# - members:
# - serviceAccount:[email protected]
# role: roles/bigquery.admin
# etag: BwWeTz6vIBY=
# version: 1
서비스 계정 키 생성
$ gcloud iam service-accounts keys create ./anata_no_key.json \
--iam-account サービスアカウントネーム@プロジェクトID.iam.gserviceaccount.com
디렉토리 구성
.
├── anata_no_key.json
└── working/
└── main.py
google-cloud-bigquery를 사용하는 경우
google-cloud-bigquery
를 pip로 설치
$ pip install google-cloud-bigquery
쿼리 결과를 DataFrame에서 가져오기
main.pyimport os
from google.cloud import bigquery
from IPython.display import display
# 自ファイルのディレクトリを取得
cwd = os.path.dirname(os.path.abspath(__file__))
# 環境変数に設定
key_path = '{}/../credentials.json'.format(cwd)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = key_path
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
client = bigquery.Client(project=project_id)
sql = f"""
select col1, col2, col3
from {dataset_id}.{table_id}
limit 100
"""
df = client.query(sql).to_dataframe()
display(df)
pandas-gbq를 사용하는 경우
pandas-gbq
를 pip로 설치
$ pip install pandas-gbq
쿼리 결과를 DataFrame에서 가져오기
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
DataFrame을 BigQuery의 테이블에 씁니다.
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.
├── anata_no_key.json
└── working/
└── main.py
google-cloud-bigquery
를 pip로 설치$ pip install google-cloud-bigquery
쿼리 결과를 DataFrame에서 가져오기
main.pyimport os
from google.cloud import bigquery
from IPython.display import display
# 自ファイルのディレクトリを取得
cwd = os.path.dirname(os.path.abspath(__file__))
# 環境変数に設定
key_path = '{}/../credentials.json'.format(cwd)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = key_path
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
client = bigquery.Client(project=project_id)
sql = f"""
select col1, col2, col3
from {dataset_id}.{table_id}
limit 100
"""
df = client.query(sql).to_dataframe()
display(df)
pandas-gbq를 사용하는 경우
pandas-gbq
를 pip로 설치
$ pip install pandas-gbq
쿼리 결과를 DataFrame에서 가져오기
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
DataFrame을 BigQuery의 테이블에 씁니다.
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import os
from google.cloud import bigquery
from IPython.display import display
# 自ファイルのディレクトリを取得
cwd = os.path.dirname(os.path.abspath(__file__))
# 環境変数に設定
key_path = '{}/../credentials.json'.format(cwd)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = key_path
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
client = bigquery.Client(project=project_id)
sql = f"""
select col1, col2, col3
from {dataset_id}.{table_id}
limit 100
"""
df = client.query(sql).to_dataframe()
display(df)
pandas-gbq
를 pip로 설치$ pip install pandas-gbq
쿼리 결과를 DataFrame에서 가져오기
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
DataFrame을 BigQuery의 테이블에 씁니다.
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pandas as pd
# BigQueryからDataFrame形式でロード
project_id = 'project_id'
dataset_id = 'dataset_id'
table_id = 'table_id'
query = f"""
SELECT *
FROM {dataset_id}.{table_id}
LIMIT 10
"""
# dialect='standard' で標準SQLを使用
df = pd.read_gbq(query, project_id, dialect='standard')
display(df)
import pandas as pd
# DataFrameをBigQueryへインポート
df = pd.read_csv('path/to/dir/file.csv')
dataset_id = 'dataset_id'
table_id = 'table_id'
df.to_gbq(f'{dataset_id}.{table_id}')
Reference
이 문제에 관하여(BigQuery ↔ Pandas 간 읽기/쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/komiya_____/items/8fd900006bbb2ebeb8b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)