Я пытаюсь использовать пакет DASK в Python 3.4, чтобы избежать проблем с ОЗУ с большими наборами данных, но я заметил проблему.ОЗУ с DASK и функцией from_pandas
Использование native fucntion "read_csv" Я загружаю большой набор данных в базу данных dask с использованием менее 150 МБ ОЗУ.
Тот же набор данных, который считывается с использованием соединения PANDAS DB (с использованием параметров ограничения и смещения) и dask fuction «from_pandas», заполняет мой барабан uo до 500/750 МБ.
Я не могу понять, почему это происходит, и я хочу исправить эту проблему.
Вот код:
def read_sql(schema,tab,cond):
sql_count="""Select count(*) from """+schema+"""."""+tab
if (len(cond)>0):
sql_count+=""" where """+cond
a=pd.read_sql_query(sql_count,conn)
num_record=a['count'][0]
volte=num_record//10000
print(num_record)
if(num_record%10000>0):
volte=volte+1
sql_base="""Select * from """+schema+"""."""+tab
if (len(cond)>0):
sql_base+=""" where """+cond
sql_base+=""" limit 10000"""
base=pd.read_sql_query(sql_base,conn)
dataDask=dd.from_pandas(base, npartitions=None, chunksize=1000000)
for i in range(1,volte):
if(i%100==0):
print(i)
sql_query="""Select * from """+schema+"""."""+tab
if (len(cond)>0):
sql_query+=""" where """+cond
sql_query+=""" limit 10000 offset """+str(i*10000)
a=pd.read_sql_query(sql_query,conn)
b=dd.from_pandas(a , npartitions=None, chunksize=1000000)
divisions = list(b.divisions)
b.divisions = (None,)*len(divisions)
dataDask=dataDask.append(b)
return dataDask
a=read_sql('schema','tabella','data>\'2016-06-20\'')
Спасибо за помощь мне
В ожидании новостей
Спасибо, я попробую эти методы как можно скорее, а затем я дам вам ответ. –