我是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实例和实例类型),我的写入时间不一致。有时它发生得很快,有时太慢。有什么方法可以加快此过程并获得一致的写入时间吗?我想知道当已经有很多键时它是否会缓慢发生,但是对于哈希表应该不是问题吗?
答案 0 :(得分:0)
这可能是您的分区策略存在的问题。
在写入之前检查“ df”的分区数,并查看分区数与执行时间之间是否存在关系。
如果是这样,请使用适当的分区策略对“ df”进行分区(将分区重新分区为固定数量的分区,或者根据列值进行分区)应该可以解决问题。
希望这会有所帮助。