Pyspark&x2B;Redis远程服务器

Pyspark&x2B;Redis远程服务器,pyspark,redis,pyspark-sql,pyspark-dataframes,redis-server,Pyspark,Redis,Pyspark Sql,Pyspark Dataframes,Redis Server,我有一个配置了redis和maven的服务器 然后我做下面的sparkSession spark = pyspark .sql .SparkSession .builder .master('local[4]') .appName('try_one_core') .config("spark.redis.host", "XX.XXX.XXX.XXX") .config("spark.redis.port", "6379") .config("spark.redis.auth", "XXXX")

我有一个配置了redis和maven的服务器 然后我做下面的sparkSession

spark = pyspark
.sql
.SparkSession
.builder
.master('local[4]')
.appName('try_one_core')
.config("spark.redis.host", "XX.XXX.XXX.XXX")
.config("spark.redis.port", "6379")
.config("spark.redis.auth", "XXXX")
.getOrCreate()
我正在尝试连接到远程redis服务器并从中写入/加载数据,但是当我尝试使用以下命令保存()时

df
.write
.format("org.apache.spark.sql.redis")
.option("table", "df")
.option("key.column", "case_id")
.save()
我得到以下错误:

py4j.protocol.Py4JJavaError:调用时出错 o327.保存:java.lang.ClassNotFoundException:找不到数据 来源:org.apache.spark.sql.redis。请在以下网址查找包裹:


有什么解决办法吗?

这意味着spark redis中没有加载带有依赖项的jar

必须使用中所述的以下参数运行pyspark:


$bin/pyspark--jars/spark-redis--jar-with-dependencies.jar--conf“spark.redis.host=localhost”--conf“spark.redis.port=6379”--conf“spark.redis.auth=passwd”

作为@fe2s-answer的补充,它不需要从磁盘或网络存储加载,也可以直接从maven加载

bin/pyspark --packages com.redislabs:spark-redis:2.4.0

--packages
--jars
参数也可以与正常的
spark submit
命令一起使用

我已将此服务器配置为可远程访问的redis,然后在我的计算机上通过pySpark代码与指定的spark会话建立连接,但是,我的计算机上是否也应该安装maven?或者仅在正在访问的远程服务器上