2015-12-07 1 views
1

Face à l'erreur due à l'itération dans le moteur pour les données grâce à laquelle stackoverflow exception est à venir comme suit:PredictionIO Engine

ERROR org.apache.spark.executor.Executor [Executor task launch worker-0] - Exception in task 0.0 in stage 30.0 (TID 76) 
java.lang.StackOverflowError 
    at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2774) 
    at java.io.ObjectInputStream.readHandle(ObjectInputStream.java:1450) 
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1512) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) 
+0

Et quelle est la question? – kayess

+0

J'étais confronté à l'erreur hier en raison de l'itération dans le moteur pour les données en raison de quelle exception stackoverflow arrivait. –

+0

Alors s'il vous plaît modifier cette information supplémentaire à votre question. – kayess

Répondre

3

Quelles solutions pour l'erreur:

1.Simply réduire le paramètre numIterations pour l'algorithme dans le fichier engine.json dans votre moteur de prédiction. Ou Si cela ne fonctionne pas, utilisez une autre solution ci-dessous.

2.Ajoutez un point de reprise qui empêche la récursion utilisée par la base de code de créer un débordement. D'abord, créez un nouveau répertoire pour stocker les points de contrôle. Ensuite, demandez à votre SparkContext d'utiliser ce répertoire pour le point de contrôle. Voici l'exemple en Python:

sc.setCheckpointDir ('point de contrôle /') Vous devrez peut-être également ajouter un point de contrôle à l'ALS, mais je n'ai pas été en mesure de déterminer si cela fait une différence. Pour ajouter un poste de contrôle (probablement pas nécessaire), il suffit de faire:

ALS.checkpointInterval = 2

+0

la première option a fonctionné pour moi. –