1

Ich habe mit einem Problem stecken geblieben. Wenn ich Beispiel cassandra Verbindungscode schreibe, während Import cassandra Verbindungsstück gibt Fehler.Pyspark und Kassandra Connection Error

Ich beginne das Skript wie unten Code (beide Fehler gab)

./spark-submit --jars spark-cassandra-connector_2.11-1.6.0-M1.jar /home/beyhan/sparkCassandra.py 

./spark-submit --jars spark-cassandra-connector_2.10-1.6.0.jar /home/beyhan/sparkCassandra.py 

Aber unter Fehler geben, während

import pyspark_cassandra 

ImportError: No module named pyspark_cassandra

Welche Teil ich falsch gemacht?

Hinweis: Ich habe die Cassandra-Datenbank bereits installiert.

+0

Wo Sie diese Import-Anweisung bekommen haben von? Haben Sie die Dokumentation des Cassandra Connectors gelesen: https://github.com/datastax/spark-cassandra-connector#documentation? Diese Importanweisung wird nirgends erwähnt, weil es tatsächlich kein Modul mit diesem Namen gibt. – sgvd

Antwort

1

Sie mischen DataStax 'Spark Cassandra Connector (in dem Glas, das Sie zu Spark submit hinzufügen) und TargetHoldings PySpark Cassandra-Projekt (das das pyspark_cassandra-Modul hat). Letzteres ist veraltet, daher sollten Sie wahrscheinlich den Spark Cassandra Connector verwenden. Dokumentation für dieses Paket finden Sie here.

, es zu benutzen, können Sie die folgenden Flags in den Funken einreichen:

--conf spark.cassandra.connection.host=127.0.0.1 \ 
--packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3 

Natürlich verwenden, um die IP-Adresse auf dem Cassandra zuhört, und überprüfen, welche Stecker Version Sie verwenden müssen: 2.0.0 -M3 ist die neueste Version und funktioniert mit Spark 2.0 und den meisten Cassandra-Versionen. Siehe compatibility table für den Fall, dass Sie eine andere Spark-Version verwenden. 2.10 oder 2.11 ist die Version von Scala, mit der Ihre Spark-Version erstellt wurde. Wenn Sie Spark 2 verwenden, ist es standardmäßig 2,11, vor Version 2.x war es Version 2.10.

Dann die schönste Art und Weise mit dem Stecker zu arbeiten, ist, es zu benutzen Datenrahmen zu lesen, die wie folgt aussieht:

sqlContext.read\ 
    .format("org.apache.spark.sql.cassandra")\ 
    .options(table="kv", keyspace="test")\ 
    .load().show() 

Siehe PySpark with DataFrames Dokumentation für weitere Details

Verwandte Themen