Pyspark und Cassandra sichern bundle.zip

Aug 27 2020

Ich bin neu in dieser pyspark cassandra-Technologie, habe in pyspark viele Ressourcen zu Spark.sql gefunden und finde das cool, aber ich bin immer noch auf der Ebene der Verbindung mit meiner Datenbank festgefahren, weil ich eine sichere-bundle.zip-Datei benötige von der Datensteuer bis zur Verbindung. Also, hier gehe ich mit meinen Fragen:

Ich verstehe, dass dies der Weg ist, um mit der pyspark-Shell eine Verbindung zu meiner entfernten Datenbank herzustellen:

pyspark --packages com.datastax.spark:spark-cassandra-connector_2.11:2.5.1\ 
        --files path_to/secure-connect-test.zip \
        --conf spark.cassandra.connection.config.cloud.path=secure-connect-test.zip \
        --conf spark.cassandra.auth.username=UserName \
        --conf spark.cassandra.auth.password=Password \
        --conf spark.dse.continuousPagingEnabled=false

Ich habe die JAR-Dateien für heruntergeladen com.datastax.spark:spark-cassandra-connector_2.11:2.5.1, also habe ich diese Jars in meinen Spark / Jars-Ordner kopiert (das ist richtig, oder?)

Dann enden meine Funkenschalenbefehle wie folgt:

pyspark  --files path_to/secure-connect-test.zip \
        --conf spark.cassandra.connection.config.cloud.path=secure-connect-test.zip \
        --conf spark.cassandra.auth.username=UserName \
        --conf spark.cassandra.auth.password=Password \
        --conf spark.dse.continuousPagingEnabled=false

Jetzt verstehe ich, dass der gesamte Pyspark-Code eine API zur Steuerung des Funkens ist. Dann können alle oben genannten Befehle mit dem Pyspark-Code umgeschrieben werden. Die --confParameter , die ich verstehe, beziehen sich auf .config(value, value):

sparkSession=SparkSession.builder.appName('SparkCassandraApp').config('spark.cassandra.connection.host', 'localhost')

Meine Frage ist also, wie ich meine Zip-Datei hinzufügen kann.

Ich habe gesehen, wie man eine Datei im Pyspark-Code in meine Spark-Sitzung hochlädt, SparkContext.addFile()aber ich bin verwirrt, weil ich den SparkContext vor der Spark-Sitzung festlegen muss, also muss ich den SparkContext festlegen und meine Datei hinzufügen und dann die SparkSession erneut hinzufügen, auch wenn ich dieselben Werte wiederhole? oder kann ich die Datei bundle.zip nur in der Spark-Sitzung hinzufügen, indem ich den Quellpfad hinzufüge?

Bitte helfen Sie, ich möchte nur eine klare Vorstellung von Funken und seiner Arbeitsweise haben

Vielen Dank

Antworten

2 AlexOtt Aug 26 2020 at 23:52

Wenn Sie verwenden --files, lädt Spark die lokale Datei in den Cluster hoch und stellt sie allen Ausführenden zur Verfügung, wie dies über erfolgt .addFile. In diesem Fall können Sie einfach den Dateinamen über angeben spark.cassandra.connection.config.cloud.path. Sie müssen die Datei nicht in den Jars-Ordner usw. kopieren - sie kann dort liegen, wo sie heruntergeladen wurde.

Wie in dem Blog-Beitrag beschrieben, auf den ich verwiesen habe , kann sich die Datei auch an einem beliebigen Speicherort befinden, der von allen Ausführenden erreichbar ist, z. B. S3 / HDFS / HTTP / ... - in diesem Fall kann spark.cassandra.connection.config.cloud.pathsie nur auf diesen Speicherort verweisen, ohne dass dies angegeben werden muss über --files. Wenn Sie die Datei an alle Ausführenden kopiert haben, können Sie auch den vollständigen Pfad zu dieser Datei als verwendenfile://path-to-secure-bundle