我是 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 project dataframe page 中的建议.
但是,对于相同的 Spark 集群配置(相同数量的 EC2 实例和实例类型),我的写入时间不一致。有时它发生得非常快,有时又太慢了。有什么办法可以加快这个过程并获得一致的写入时间吗?我想知道当里面已经有很多键时它是否会慢慢发生,但这对于哈希表来说应该不是问题,不是吗?
最佳答案
这可能是您的分区策略有问题。
写入前检查“df”的分区数,看分区数和执行时间是否有关系。
如果是这样,使用合适的分区策略对“df”进行分区(重新分区到固定数量的分区或基于列值重新分区)应该可以解决问题。
希望这对您有所帮助。
关于apache-spark - Spark-redis:数据帧写入时间太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338284/