Spark-Redis:数据框写入时间太慢

时间:2019-01-24 01:49:04

标签: apache-spark dataframe redis pyspark spark-redis

我是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实例和实例类型),我的写入时间不一致。有时它发生得很快,有时太慢。有什么方法可以加快此过程并获得一致的写入时间吗?我想知道当已经有很多键时它是否会缓慢发生,但是对于哈希表应该不是问题吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

希望这会有所帮助。