Pyspark e Cassandra proteggono bundle.zip

Aug 27 2020

Sono nuovo in questa tecnologia pyspark cassandra, ho trovato molte risorse su Spark.sql in pyspark e penso che sia bello, ma sono ancora bloccato a livello di connessione con il mio database perché ho bisogno di un secure-bundle.zip da datastax per connettersi. Quindi, eccomi con le mie domande:

Capisco che questo è il modo per connettersi al mio database remoto con pyspark shell:

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

Ho scaricato i file jar per com.datastax.spark:spark-cassandra-connector_2.11:2.5.1, quindi ho copiato quei jar nella mia cartella spark/jars (è corretto, giusto?)

Quindi, i miei comandi Spark Shell terminano come:

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

Ora, capisco che tutto il codice pyspark è un'API per controllare la scintilla, quindi tutti i comandi sopra possono essere riscritti con il codice pyspark, i --confparametri che capisco sono correlati a .config(value, value):

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

Quindi, la mia domanda è, come aggiungere il mio file zip?

Ho visto il modo per caricare un file nella mia sessione spark, nel codice pyspark, sarebbe con SparkContext.addFile()ma sono confuso perché devo impostare SparkContext prima della sessione Spark, quindi devo impostare SparkContext , aggiungere il mio file e poi aggiungo di nuovo SparkSession anche se ripeto gli stessi valori? o posso aggiungere il file bundle.zip solo nella sessione Spark aggiungendo il percorso di origine?

Per favore aiutatemi, voglio solo avere una visione chiara di Spark e del suo modo di funzionare

Grazie

Risposte

2 AlexOtt Aug 26 2020 at 23:52

se stai utilizzando --files, Spark caricherà il file locale nel cluster e lo renderà disponibile a tutti gli esecutori, come avviene tramite .addFile. In questo caso puoi semplicemente specificare il nome del file tramite spark.cassandra.connection.config.cloud.path. Non è necessario copiare il file nella cartella jars, ecc.: potrebbe trovarsi dove è stato scaricato.

come descritto nel post del blog a cui ho fatto riferimento , il file potrebbe trovarsi anche in qualsiasi posizione raggiungibile da tutti gli esecutori, ad esempio S3/HDFS/HTTP/... - in questo caso, spark.cassandra.connection.config.cloud.pathpotrebbe semplicemente puntare a quella posizione senza bisogno di specificare tramite --files. Se hai copiato il file su tutti gli esecutori, puoi anche utilizzare il percorso completo di quel file comefile://path-to-secure-bundle