Привет, я создаю задание GLUE, которое будет читать файл csv, а затем разбивать его по определенному столбцу, к сожалению, это вызывает ошибку OOM(Out of Memory)
Пожалуйста, смотрите код ниже
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import boto3
#get date
Current_Date = datetime.now() - timedelta(days=1)
now = Current_Date.strftime('%Y-%m-%d')
#get date
Previous_Date = datetime.now() - timedelta(days=2)
prev = Previous_Date.strftime('%Y-%m-%d')
#read csv file that contain today's date
filepath = "s3://bucket/file"+now+".csv.gz"
data = pd.read_csv(filepath, sep='|', header=None,compression='gzip')
# count no. of loops
loop = 0
for i, x in data.groupby(data[10].str.slice(0,10)):
loop += 1
# if no. of distinct values of column 10 (last_update) is greater than or equal to 7
if loop >= 7:
#run loop for the dataframe and split by distinct values of column 10 (last_update)
for i, x in data.groupby(data[10].str.slice(0, 10)):
x.to_csv("s3://bucket/file.csv.gz".format(i.lower()),header=None,compression='gzip')
#if no. of distinct values of column 10 (last_update) is less than 7
#filter dateframe (current date and previous date); new dataframe is created
else:
d = data[(data[10].str.slice(0,10)==prev)|(data[10].str.slice(0,10)==now)]
#run loop for the filtered data frame and split by distinct values of column 10 (last_update)
for i, x in d.groupby(d[10].str.slice(0, 10)):
x.to_csv("s3://bucket/file.csv.gz".format(i.lower()),header=None,compression='gzip')
РЕШЕНИЕ - Я решил эту проблему, увеличив максимальную емкость работы с клеем