问题标签 [spark-redis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
481 浏览

pyspark - 将 pyspark 数据帧转换为 JSON 时的性能问题

我想以有效的方式将 pyspark 数据框内容插入 Redis。尝试了几种方法,但都没有给出预期的结果。

  1. 将 df 转换为 json 需要 30 秒。目标是将 json 有效负载设置到 Redis 集群中以供使用。

  2. 我也在尝试利用 spark-redis https://github.com/RedisLabs/spark-redis/blob/master/doc/python.md库将结果插入到 Redis 中,以便将结果插入到所有工作节点的 Redis,看看它是否有很大的不同。即使这个过程也需要相同的时间才能将结果插入 Redis

我正在寻找有关如何清除瓶颈的专家建议,看看我是否可以将其缩短到不到 5 秒,谢谢。

我正在使用具有 1+4 个节点的 EMR 集群,每个节点有 16 个内核和 64 Gigs 内存。

将 df 转换为 json 的前两行代码需要 29 秒,设置为 redis 需要 1 秒。

或者

最后一行代码使用工作节点将 df 内容直接插入 Redis,但需要大约 28 秒。

0 投票
1 回答
1163 浏览

pyspark - 如何在 Pycharm 中将 jar 添加到 Spark

我想在 PyCharm 中调试 Spark 代码,因为它更容易调试。但我需要添加一个spark-redis.jar否则Failed to find data source: redis

连接redis的代码是

如果使用 PyCharm,该如何解决?

我已经尝试添加spark.driver.extraClassPath$SPARK_HOME/conf/spark-defaults.conf但它不起作用。

我也尝试在运行配置中添加环境变量PYSPARK_SUBMIT_ARGS --jars ...,但它引发了其他错误

0 投票
0 回答
111 浏览

java - Java - 如何将 Iterable 转换为 JavaPairRDD

我有一个 ( String, Iterable[(String, String)] ) 的 JavaPairRDD,我希望将其转换为 ( String, RDD[String, String ]) 的 JavaPairRDD,这样我就可以使用 reduceByKey 函数到内部Java对RDD。

在此示例中,我有一个 JavaPairRDD,其中 key 是特定型号,value 是元组项目编号和该项目价格的 Iterable。

以下是 JavaPairRDD 的示例:

应用 reduceByKey 函数后,我希望结果如下所示:

一个非常相似的线程使用以下 Scala 代码转换了这个 RDD: How to convert an Iterable to an RDD

在Java中有类似的方法吗?

谢谢你的帮助。

0 投票
1 回答
656 浏览

java - 使用Java读取spark redis保存的数据

我使用spark-redis将数据集保存到 Redis。然后我使用Spring data redis读取这些数据:

我保存到redis的这个对象:

使用 spark-redis 保存对象:

存储库:

我无法读取使用 Spring data redis 保存在 Redis 中的数据,因为 spark-redis 和 spring data redis 保存的结构数据不同(我检查了 spark-redis 和 spring data redis 创建的键的值是不同的使用命令:redis-cli -p 6379 keys \*redis-cli hgetall $key

那么如何读取已经使用 Java 或任何 Java 库保存的数据呢?

0 投票
1 回答
547 浏览

apache-spark - 使用 pyspark 从 redis 读取特定密钥

我正在尝试使用 pyspark 从 Redis 读取特定密钥。根据文档,我没有找到任何特定的命令来读取特定的密钥。使用下面的代码,我可以从 Redis 读取所有数据:

请建议

0 投票
0 回答
106 浏览

java - java.net.SocketException:尝试从spark sql java应用程序将数据加载/写入redis时连接重置异常

我正在尝试在基于 spark-sql java 的应用程序中从 Redis 缓存加载/写入数据。这是我的代码:

这是我得到的例外:

我已经在 Windows 机器上使用 docker 和 kubectl 启动了 redis。 在此处输入图像描述

我不确定是什么导致了这个问题。有人可以帮我解决这个问题

0 投票
1 回答
319 浏览

scala - 数据转换后将kafka流数据帧保存到Databricks中的Redis

在对数据执行聚合后,我正在使用 pyspark 将 kafka 流定向到 redis。最终输出是流式数据流。

我连接到 kafka 流的代码。(您可能会发现我的代码是外行工作,请忽略)

作为订阅经纪人,这给了我流数据框。在此之后,我将数据聚合到 count_df,如图所示

现在我正在尝试将此 count_df 流写入 redis。在我的 resreach 之后,我发现我可以使用“spark-redis_2.11”进行 spark-redis 连接。

我不知道 scala,我找到了一个带有 scala 的 spark-redis github 示例。有人可以帮助在pyspark中写入以将这个count_df写入带有身份验证的redis的确切方法是什么

请在这里找到 spark-redis github

我已经在集群上安装了所需的 jar “com.redislabs:spark-redis_2.12:2.5.0”。

谢谢。

刚发现他们还不支持python,请告诉我还有其他方法可以写吗?

0 投票
2 回答
175 浏览

pyspark - 如何在 databricks 中为 redis 连接设置 jar 配置

我在 databricks 中安装了以下 jar "com.redislabs:spark-redis_2.12:2.5.0"。并尝试使用各自的身份验证创建火花会话

下面是我使用凭据创建火花会话的代码

但是当我尝试使用以下代码保存它时

这会引发以下错误。

这显然意味着连接到localhost而不是我提供的主机名。如何在数据块中使用主机名和密码传递 jar 配置以验证连接。

0 投票
1 回答
416 浏览

apache-spark - spark-redis 异常:原因:redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out

我正在尝试通过 spark 将数据插入到 redis(Azure Cache for Redis)。大约有 7 亿行,我正在使用spark-redis连接器插入数据。它在一段时间抛出此错误后失败。我可以插入一些行,但一段时间后,一些任务开始失败并出现以下错误。我正在浏览 jupyter 笔记本。

这就是我尝试写入数据的方式。

0 投票
0 回答
29 浏览

apache-spark - 无法使用 spark-submit 调用特定包

您要使用的包是 spark-redis。

上面的 pyspark-shell 允许你使用 spark-redis 包,但是如果你使用 spark-submit 传递包

/usr/bin/spark-submit /var/lib/jupyter/Spark2/test_redis.py --packages com.redislabs:spark-redis:2.3.0

: java.lang.ClassNotFoundException: Failed to find data source: org.apache.spark.sql.redis. Please find packages at http://spark.apache.org/ third-party-projects.html

我收到一条错误消息。为什么是这样?