0

我是 Apache Spark/Redis 用户,最近我为一个项目尝试了spark-redis。该程序正在生成大约 300 万行的 PySpark 数据帧,我正在使用命令将其写入 Redis 数据库

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

正如GitHub 项目数据框页面所建议的那样。

但是,对于相同的 Spark 集群配置(相同数量的 EC2 实例和实例类型),我的写入时间不一致。有时它发生得很快,有时又太慢。有什么方法可以加快这个过程并获得一致的写入时间?我想知道当里面已经有很多键时它是否会慢慢发生,但这对于哈希表来说应该不是问题,不是吗?

4

1 回答 1

0

这可能是您的分区策略的问题。

在写入之前检查“df”的分区数,看看分区数和执行时间之间是否存在关系。

如果是这样,使用合适的分区策略对“df”进行分区(重新分区到固定数量的分区或根据列值重新分区)应该可以解决问题。

希望这可以帮助。

于 2019-01-24T04:49:07.190 回答