2017-08-23 1 views
2

Je suis un débutant dans H2O (paquet python). Mon problème est que je ne peux pas comprendre comment je peux créer un H2OFrame à partir d'un dataframe de Pandas avec succès.python 3.x: crash de H2OFrame - Analyse des Pandas dataframe

Mon environnement est:

  • de Windows 10 Home, construire 15063,540, avec Go de mémoire
  • 16,0
  • Java SE Development Kit 8u144 (64 bits)
  • Java SE Runtime Environment (build 1.8 .0_144-B01)
  • Anaconda Python 3.5.4

J'ai commencé le serveur avec h2o.init():

H2O cluster uptime: 19 hours 14 mins 
H2O cluster version: 3.14.0.1 
H2O cluster version age: 12 days 
H2O cluster name: H2O_from_python_pedro_23i63g 
H2O cluster total nodes: 1 
H2O cluster free memory: 3.456 Gb 
H2O cluster total cores: 4 
H2O cluster allowed cores: 4 
H2O cluster status: locked, healthy 
H2O connection url: http://localhost:54321 
H2O connection proxy: None 
H2O internal security: False 
H2O API Extensions: Algos, AutoML, Core V3, Core V4 
Python version: 3.5.4 final 

Je suis en train de créer mon H2OFrame des train1 pandas géants dataframe par la commande suivante:

hf1 = h2o.H2OFrame(train1) 

d'info crash:

OSError: Job with key $03017f00000132d4ffffffff$_8ef7ebc5204725b046d7b31ca7194c71 failed with an exception: DistributedException from /127.0.0.1:54321: 'null', caused by java.lang.AssertionError 
stacktrace: 
DistributedException from /127.0.0.1:54321: 'null', caused by java.lang.AssertionError 
    at water.MRTask.getResult(MRTask.java:478) 
    at water.MRTask.getResult(MRTask.java:486) 
    at water.MRTask.doAll(MRTask.java:402) 
    at water.parser.ParseDataset.parseAllKeys(ParseDataset.java:245) 
    at water.parser.ParseDataset.access$000(ParseDataset.java:26) 
    at water.parser.ParseDataset$ParserFJTask.compute2(ParseDataset.java:194) 
    at water.H2O$H2OCountedCompleter.compute(H2O.java:1255) 
    at jsr166y.CountedCompleter.exec(CountedCompleter.java:468) 
    at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263) 
    at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974) 
    at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477) 
    at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) 
Caused by: java.lang.AssertionError 
    at water.parser.Categorical.addKey(Categorical.java:41) 
    at water.parser.FVecParseWriter.addStrCol(FVecParseWriter.java:133) 
    at water.parser.CsvParser.parseChunk(CsvParser.java:126) 
    at water.parser.ParseDataset$MultiFileParseTask$DistributedParse.map(ParseDataset.java:888) 
    at water.MRTask.compute2(MRTask.java:637) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.MRTask.compute2(MRTask.java:591) 
    at water.H2O$H2OCountedCompleter.compute1(H2O.java:1258) 
    at water.parser.ParseDataset$MultiFileParseTask$DistributedParse$Icer.compute1(ParseDataset$MultiFileParseTask$DistributedParse$Icer.java) 
    at water.H2O$H2OCountedCompleter.compute(H2O.java:1254) 
    ... 5 more 

Cependant, j'ai essayé pour créer le H2OFrame en utilisant le premier 6 lignes de la dataframe des pandas et il est allé nous ll.

hf1 = h2o.H2OFrame(train1.loc[:6,:]) 
[out] Parse progress: |█████████████████████████████████████████████████████████| 100% 

Mais lorsque je tente plus de ces 6 lignes (par exemple 7 lignes), il échoue à nouveau avec l'info crash précédent:

hf1 = h2o.H2OFrame(train1.loc[:7,:]) 
[out] Parse progress: | (failed) 

Que peut-être tort dans ce domaine?

Merci d'avance.

Pedro

Répondre

0

Ajouté:

h2o.cluster().shutdown() 

et fixe mon problème. Peut-être tort, mais je pense que le manque de RAM était mon problème, donc la fermeture du cluster précédent a aidé.

J'ai trouvé la solution à mon propre problème mais je vais laisser ceci ici pour que je puisse aider le reste des gens qui peuvent avoir le même problème.