pyspark+redis远程服务器

6ojccjat  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(473)

我有一个配置了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服务器并从中写入/加载数据,但是当我尝试使用以下命令来.save()时

df
.write
.format("org.apache.spark.sql.redis")
.option("table", "df")
.option("key.column", "case_id")
.save()

我得到以下错误:
py4j.protocol.py4jjavaerror:调用o327.save时出错:java.lang.classnotfoundexception:找不到数据源:org.apache.spark.sql.redis。请在以下地址查找包裹http://spark.apache.org/third-party-projects.html
有什么解决办法吗?

w1e3prcc

w1e3prcc1#

意思是 spark-redis-<version>-jar-with-dependencies.jar 没有Spark。
必须使用文档中所述的以下参数运行pyspark: $ bin/pyspark --jars <path-to>/spark-redis-<version>-jar-with-dependencies.jar --conf "spark.redis.host=localhost" --conf "spark.redis.port=6379" --conf "spark.redis.auth=passwd"

wqsoz72f

wqsoz72f2#

除了@fe2s answer之外,它也可以直接从maven加载,而不是从磁盘或网络存储加载

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

这个 --packages 以及 --jars 参数也可以与normal一起使用 spark-submit 命令

相关问题