Open syleeie2310 opened 17 hours ago
구글 클라우드 계정을 만들어서, 해당 계정으로 key를 발급하고, 데이터 폴더의 권한을 해당 계정을 추가해야 됨 ([google-sheet@team-???.iam.gserviceaccount.com] ---> 해당 데이터 폴더의 왼쪽 계정을 추가
[2. DBFS] 1) DBFS -> 파일을 업로드 2) 업로드 한 파일을 읽어서 spark.DataFrame -> 델타 테이블
[3. Create or modify table from file upload]
[필요한 라이브러리 아래 중에서 맞는것만 설치] 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