Я новичок в GCS и облачных функциях и хотел бы понять, как я могу создавать облегченные ETL, используя эти две технологии в сочетании с Python (3.7).
У меня есть корзина GCS под названием «Test_1233», содержащая 3 файла (все структурно идентичны). Когда новый файл добавляется в эту корзину gcs, я бы хотел, чтобы следующий код на python запускался, создавал файл «output.csv» и сохранял его в той же корзине. Код, который я пытаюсь запустить ниже:
import pandas as pd
import glob
import os
import re
import numpy as np
path = os.getcwd()
files = os.listdir(path) ## Originally this was intentended for finding files in the local directlory - I now need this adapted for finding files within gcs(!)
### Loading Files by Variable ###
df = pd.DataFrame()
data = pd.DataFrame()
for files in glob.glob('gs://test_1233/Test *.xlsx'): ## attempts to find all relevant files within the gcs bucket
data = pd.read_excel(files,'Sheet1',skiprows=1).fillna(method='ffill')
date = re.compile(r'([\.\d]+ - [\.\d]+)').search(files).groups()[0]
data['Date'] = date
data['Start_Date'], data['End_Date'] = data['Date'].str.split(' - ', 1).str
data['End_Date'] = data['End_Date'].str[:10]
data['Start_Date'] = data['Start_Date'].str[:10]
data['Start_Date'] =pd.to_datetime(data['Start_Date'],format ='%d.%m.%Y',errors='coerce')
data['End_Date']= pd.to_datetime(data['End_Date'],format ='%d.%m.%Y',errors='coerce')
df = df.append(data)
df
df['Product'] = np.where(df['Product'] =='BR: Tpaste Adv Wht 2x120g','ToothpasteWht2x120g',df['Product'])
##Stores cleaned data back into same gcs bucket as 'csv' file
df.to_csv('Test_Output.csv')
Поскольку я совершенно новичок в этом, я не уверен, как создать правильный путь для чтения всех файлов в облачной среде (я использовал для чтения файлов из моего локального каталога!).
Любая помощь будет наиболее ценной.