100.000'den fazla satırdan oluşan bir veri çerçevem var ve her satırda 100.000 sütun var, toplam 10.000.000.000 float değerine sahip.HUGE veri bloğunu parke içine kaydetmek mümkün mü?
Ben csv
(sekme ayrılmış) dosyasında daha önce bunları okumayı başardınız ve başarıyla 250GB RAM ile 50 çekirdek Xeon makinesine bunları okuyup gibi bir .parq
dizin olarak dışarı yazmaya çalışıyorum:
huge.csv
'daki floatlar dizge olarak kaydedildi ve 125GB.
import dask.dataframe as dd
filename = 'huge.csv'
df = dd.read_csv(filename, delimiter='\t', sample=500000000)
df.to_parquet('huge.parq')
Bir hafta yakın için huge.parq
yazılı olmuştur ve dizin 14GB olduğunu ve .to_parquet
yakın zamanda durdurmak için gitmiyor kurtarma süreci gibi görünüyor.
$ free -mh
total used free shared buff/cache available
Mem: 251G 98G 52G 10M 101G 152G
Swap: 238G 0B 238G
soru vardır:
boyutu göz önüne alındığında
Ve
free -mh
hala orada bellek sol ancak.parq
dizini kurtarmak için alıyor zaman müthiş yavaş olduğunu gösteriyor dataframe ve makine, dask dataframe'i bir parke dosyasına kaydetmek mümkün mü?Büyük veri sayfalarını kaydetmek için
dask
vefastparquet
'un normal olması normal midir?Parke dosyasını kaydetmek için gereken süreyi tahmin etmenin bir yolu var mı? Yukarıdaki açıklamalarda anlatıldığı gibi
10e9 float değerleri bana göre büyük görünmüyor. 1e5 sütunlar olsa da. Dask.array ve HDF5 kullanmayı düşündünüz mü? Bunlar her iki boyutta da engelleme için daha uygun olabilir. – MRocklin
Dask.array ve HDF5'in >>> no.sütunların "Engelleme" nedir? – alvas
Bölme başına kaç satır? read_csv, bayt sayısını böler, bu yüzden küçük bir sayı beklerim. Her bölümün her bir sütununda, meta verilerinizin daha önce gördüğümden daha büyük olmasını sağlayan ayrı bir meta veri parçası vardır - ancak çalışmasını beklerdim. Dizi benzeri 100kx100k şamandıraları saklamak için, aslında [zarr] 'ı (http://zarr.readthedocs.io/en/latest/) tavsiye ederim. – mdurant