da-analysis / asac_6_dataanalysis

전국 지역 화폐 데이터 현황판 구축 (with 챗봇) - ASAC 데이터 프로젝트
0 stars 0 forks source link

google drive 데이터 로드 #25

Open syleeie2310 opened 17 hours ago

syleeie2310 commented 17 hours ago

[필요한 라이브러리 아래 중에서 맞는것만 설치] gspread==5.12.4 oauth2client==4.1.3

[코드] import gspread import json import pandas as pd from collections import OrderedDict from oauth2client.service_account import ServiceAccountCredentials

scope = [ 'https://spreadsheets.google.com/feeds' ]

재구성한 json 파일을 입력

json_data = dbutils.secrets.get('ds-scope', 'google-sheet-connect') json_key = json.loads(json_data, strict=False)

credentials = ServiceAccountCredentials.from_json_keyfile_dict(json_key, scope)

gc = gspread.authorize(credentials)

스프레드시트 주소

spreadsheet_key = '' <- doc = gc.open_by_key(spreadsheet_key)

시트 이름 넣기

worksheet = doc.worksheet('sheet_name')

전체 데이터를 가져오고 헤더를 따로 지정하여 DataFrame을 생성

worksheet_data = worksheet.get_all_values() worksheet_pd = pd.DataFrame(worksheet_data[1:], columns=worksheet_data[0]) # data[1:]은 첫 행(헤더)을 제외한 값들, data[0]은 헤더로 지정

worksheet_spark_df = spark.createDataFrame(worksheet_pd)

worksheet_spark_df.write.mode("overwrtie").format("delta").saveAsTable('bronze_meta.pdp.example_test')

---> create catalog -> created schema https://docs.databricks.com/en/sql/language-manual/sql-ref-syntax-ddl-create-schema.html

syleeie2310 commented 17 hours ago

구글 클라우드 계정을 만들어서, 해당 계정으로 key를 발급하고, 데이터 폴더의 권한을 해당 계정을 추가해야 됨 ([google-sheet@team-???.iam.gserviceaccount.com] ---> 해당 데이터 폴더의 왼쪽 계정을 추가

syleeie2310 commented 16 hours ago

[2. DBFS] 1) DBFS -> 파일을 업로드 2) 업로드 한 파일을 읽어서 spark.DataFrame -> 델타 테이블

[3. Create or modify table from file upload]