Pyspark и Cassandra secure bundle.zip

Aug 27 2020

Я новичок в этой технологии pyspark cassandra, я нашел много ресурсов о Spark.sql в pyspark, и я думаю, что это круто, но я все еще застрял на уровне соединения с моей базой данных, потому что мне нужен secure-bundle.zip из datastax для подключения. Итак, я перехожу к своим вопросам:

Я понимаю, что это способ подключения к моей удаленной базе данных с помощью оболочки pyspark:

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

Я загрузил файлы jar для com.datastax.spark:spark-cassandra-connector_2.11:2.5.1, поэтому я скопировал их в свою папку spark / jars (это правильно, верно?)

Затем мои команды оболочки искры заканчиваются так:

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

Теперь я понимаю, что весь код pyspark - это API для управления искрой, тогда все приведенные выше команды можно переписать с помощью кода pyspark, --confпараметры, которые, как я понимаю, связаны с .config(value, value):

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

Итак, мой вопрос: как добавить свой zip-файл?

Я видел, как можно было бы загрузить файл в мой сеанс искры в коде pyspark, SparkContext.addFile()но я смущен, потому что мне нужно установить SparkContext перед сеансом Spark, поэтому мне нужно установить SparkContext, добавить мой файл а затем снова добавить SparkSession, даже если я повторю те же значения? или я могу добавить файл bundle.zip только в сеанс Spark, добавив исходный путь?

Пожалуйста, помогите, я просто хочу иметь четкое представление об искре и ее способе работы

Спасибо

Ответы

2 AlexOtt Aug 26 2020 at 23:52

если вы используете --files, то Spark загрузит локальный файл в кластер и сделает его доступным для всех исполнителей, как это делается через .addFile. В этом случае вы можете просто указать имя файла через spark.cassandra.connection.config.cloud.path. Копировать файл в папку jars и т.п. не нужно - он может лежать там, где был загружен.

как описано в сообщении в блоге, на которое я ссылался , файл также может быть расположен в любом месте, доступном для всех исполнителей, например, S3 / HDFS / HTTP / ... - в этом случае spark.cassandra.connection.config.cloud.pathможет просто указывать на это место без необходимости указывать через --files. Если вы скопировали файл всем исполнителям, то вы также можете использовать полный путь к этому файлу какfile://path-to-secure-bundle