2015-03-07 13 views
8

To pytanie jest w jakiś sposób powiązane z "Concatenate a large number of HDF5 files".Połącz dwa duże pandy.HDFStore Pliki HDF5

Mam kilka ogromnych plików HDF5 (~ 20GB skompresowanych), które nie pasują do pamięci RAM. Każdy z nich przechowuje kilka identycznych formatów i indeksów, które się nie nakładają.

Chciałbym połączyć je, aby mieć pojedynczy plik HDF5 ze wszystkimi połączonymi DataFrame. Jednym ze sposobów, aby to zrobić, jest odczytanie każdego z nich porcją po kawałku, a następnie zapisanie do pojedynczego pliku, ale rzeczywiście zajęłoby to sporo czasu.

Czy są jakieś specjalne narzędzia lub metody, aby to zrobić bez wykonywania iteracji plików?

Odpowiedz

11

zobacz dokument here dotyczący projektu (poprzednio into). (! To była motywacja do zmiany nazwy, aby uniknąć nieporozumień) Uwaga w przypadku korzystania z biblioteki into, wówczas kolejność Argument został przełączony

można w zasadzie zrobić:

from odo import odo 
odo('hdfstore://path_store_1::table_name', 
    'hdfstore://path_store_new_name::table_name') 

robi wiele operacji takich jak to zostanie dołączone do sklepu rhs.

Spowoduje to automatyczne wykonanie operacji porcji dla ciebie.

+1

Awesome; pierwsza wzmianka o Blaze, którą widziałem na wolności. – Veedrac

+0

Więc Blaze jest niesamowity. Jednak działa to dla mnie dziwnie. Po uruchomieniu odo jak wyżej, w końcu dostaję olbrzymi stos stdout 'zamykającego pliku', myślę, że wszystkie wspominają o docelowym sklepie, a nie źródle. Czy to brzmi jak błąd, czy też brakuje niektórych kroków przed/po? – KobeJohn