Мне нужно запустить скрипт BigQuery в Python, который должен быть выведен в виде CSV в облачном хранилище Google. В настоящее время мой сценарий вызывает большой код запроса и сохраняет его непосредственно на моем ПК.
Однако мне нужно запустить его в Airflow, чтобы у меня не было локальных зависимостей.
Мой текущийСценарий сохраняет выходные данные на моем локальном компьютере, а затем я должен переместить его в GCS. Посмотрел онлайн, и я не могу понять это. (ps я очень новичок в python, поэтому заранее извиняюсь, если об этом уже спрашивали!)
import pandas as pd
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
def run_script():
df = pd.read_gbq('SELECT * FROM `table/veiw` LIMIT 15000',
project_id='PROJECT',
dialect='standard'
)
df.to_csv('XXX.csv', index=False)
def copy_to_gcs(filename, bucket, destination_filename):
credentials = GoogleCredentials.get_application_default()
service = discovery.build('storage', 'v1', credentials=credentials)
body = {'name': destination_filename}
req = service.objects().insert(bucket=bucket,body=body, media_body=filename)
resp = req.execute()
current_date = datetime.date.today()
filename = (r"C:\Users\LOCALDRIVE\ETC\ETC\ETC.csv")
bucket = 'My GCS BUCKET'
str_prefix_datetime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
destfile = 'XXX' + str_prefix_datetime + '.csv'
print('')
```