pyspark和cassandra安全包.zip

4ktjp1zp  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(436)

我是pyspark cassandra技术的新手,我在pyspark中找到了很多关于spark.sql的资源,我认为这很酷,但我仍然停留在与数据库的连接级别,因为我需要datastax提供的secure-bundle.zip来连接。所以,我要问的问题是:
我知道这是用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

我已经下载了 com.datastax.spark:spark-cassandra-connector_2.11:2.5.1 ,所以我将这些jar复制到我的spark/jars文件夹中(对吗?)
然后,我的spark shell命令的结尾是:

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代码都是用来控制spark的api,那么,上面的所有命令都可以用pyspark代码重写 --conf 我了解的参数与 .config(value, value) :

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

所以,我的问题是,如何添加我的zip文件?
我已经看到了用pyspark代码将文件上传到spark会话的方法 SparkContext.addFile() 但是我很困惑,因为我必须在spark会话之前设置sparkcontext,所以我必须设置sparkcontext,添加我的文件,然后再次添加sparksession,即使我重复相同的值?或者我可以通过添加源路径在spark会话中添加bundle.zip文件吗?
请帮忙,我只想对spark及其工作方式有一个清晰的认识
谢谢

kokeuurv

kokeuurv1#

如果你用的是 --files ,然后spark将本地文件上载到集群,并使其对所有执行者可用,就像通过 .addFile . 在这种情况下,您可以通过 spark.cassandra.connection.config.cloud.path . 您不需要将文件复制到jars文件夹等-它可以放在下载的地方。
正如我引用的博客文章中所描述的,文件也可以位于所有执行器都可以访问的任何位置,例如s3/hdfs/http/…-在这种情况下, spark.cassandra.connection.config.cloud.path 可以直接指向该位置而不需要指定via --files . 如果您将文件复制到所有执行者,则还可以使用该文件的完整路径作为 file://path-to-secure-bundle

相关问题