我是一名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实例和实例类型),我得到了不一致的写入时间。有时候它发生得很快,有时候太慢了。有没有办法加快这个过程并获得一致的写入时间?我想知道当里面已经有很多键的时候,它是不是发生得很慢,但是对于哈希表来说这不应该是一个问题,不是吗?
发布于 2019-01-24 12:49:07
这可能是您的分区策略的问题。
在写入前检查"df“的分区数,看看分区数与执行时间是否有关系。
如果是这样的话,使用适当的分区层次对"df“进行分区(重新分区到固定数量的分区或基于列值重新分区)应该可以解决这个问题。
希望这能有所帮助。
https://stackoverflow.com/questions/54338284
复制相似问题