2016-06-13 8 views
1

Ich habe die Dokumentation hier Stratio JAVA spark mongdob Projekt hier verfolgt, aber mein Code wird nur nach dem Drucken Check1 stecken. Ich kann einfach nicht herausfinden, was ich falsch mache.Spark mongdb Daten mit Java


JavaSparkContext sc = new JavaSparkContext("local[*]", "test spark-mongodb java"); 
    SQLContext sqlContext = new SQLContext(sc); 

    Map options = new HashMap(); 
    options.put("host", "host:port"); 
    options.put("database", "database"); 
    options.put("collection", "collectionName"); 
    options.put("credentials", "username,database,password"); 

    System.out.println("Check1"); 
    DataFrame df =  sqlContext.read().format("com.stratio.datasource.mongodb").options(options).load(); 

    df.count(); 
    df.show(); 

Meine pom-Datei ist wie folgt:


<dependencies> 

    <dependency> 
     <groupId>com.stratio.datasource</groupId> 
     <artifactId>spark-mongodb_2.11</artifactId> 
     <version>0.11.1</version> 
     <type>jar</type> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.11</artifactId> 
     <version>1.5.2</version> 
     <type>jar</type> 
    </dependency> 
     <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.11</artifactId> 
     <version>1.5.2</version> 
     <type>jar</type> 
    </dependency> 

</dependencies> 

ich eingecheckt haben den Abhängigkeitsbaum und alles scheint es in Ordnung.

Antwort

2

Was Sie melden, ist ein bekannter Fehler, der bei Version 0.11.2 behoben wurde.

Dieser Fehler war der Grund, warum einige interne Akka-Akteure nicht beendet wurden. Das kombiniert mit der Tatsache, dass die Standard-Akka-Einstellungen das Akteursystem nicht-dämonisch machen, verhinderte, dass die Anwendung geschlossen wurde.

Sie haben zwei Möglichkeiten, Ihr Problem zu beheben:

  • Aktualisieren Sie Ihre Version auf 0.11.2
  • Fügen Sie eine application.conf Datei unter Projekt resources Ordner Einstellung Aktorik dämonisch. Das heißt, mit folgendem Inhalt:

    akka {

    daemonic = auf

    }

+0

Ihr Vorschlag für Die Verwendung von 0.11.2 hat mir geholfen, aber ich musste auch noch mehr Änderungen vornehmen. – orange14

+0

@ user3901172 Natürlich gibt es mehr Änderungen! Ich habe gerade herausgefunden, was dein Problem war. Ich habe diese Änderungen auch vorgenommen, als ich deinen Code getestet habe. Als einen Ratschlag bei der Verwendung von StackOverflow: Erwarten Sie nicht, dass die Leute Ihnen sofort endgültige Lösungen für Ihre Probleme geben, sondern Probleme aufzeigen und Vorschläge machen. Auf diese Weise ersparst du dir viele Downvotes, die Leute in einem Netzwerk nervös machen, das auf diese Art von Aktivitäten reagiert. –

+0

Vielen Dank für diese Vorschläge bezüglich Stackoverflow. Und danke für die Hilfe nochmal, ohne sie wäre es nicht möglich. Cheers – orange14

0

Ich werde ich meine Frage in der Hoffnung antworten, dass es jemand helfen könnte.

Ich habe es endlich geschafft, dies herauszufinden. Das Schlimmste an dieser Funke Bibliotheken ist, dass es große Unterschiede zwischen Version der Bibliothek und viele von ihnen nicht kompatibel miteinander sind:

public class TestClass { 
    JavaSparkContext sc = new JavaSparkContext("local[*]", "test spark-mongodb java"); 
    SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc); 

    Map options = new HashMap(); 
    options.put("host", "localhost:27017"); 
    options.put("database", "test"); 
    options.put("collection", "mycol"); 

    DataFrame df = sqlContext.read().format("com.stratio.datasource.mongodb").options(options).load(); 
    df.registerTempTable("mycol"); 
    sqlContext.sql("SELECT * FROM mycol"); 
    df.show(); 
} 

und meine pom-Datei ist wie folgt:

<dependency> 
     <groupId>com.stratio.datasource</groupId> 
     <artifactId>spark-mongodb_2.10</artifactId> 
     <version>0.11.2</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>1.6.1</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.10</artifactId> 
     <version>1.6.1</version> 
     <type>jar</type> 
    </dependency>