我们有一个Spark的环境,应该处理50毫米行。这些行包含一个键列。唯一的钥匙数接近2000把。我想并行处理这2000把钥匙。因此,我们使用如下sparksql
hiveContext.sql("select * from BigTbl DISTRIBUTE by KEY")
随后,我们有了一个mappartitions,它可以很好地并行处理所有分区。但是问题是,默认情况下它只创建200个分区。使用如下命令,我可以增加分区
hiveContext.sql("set spark.sql.shuffle.partitions=500");
然而,在实际生产运行中,我不知道什么是唯一键的数量。我希望这是自动管理的。请问有什么办法吗。
谢谢
巴拉
1条答案
按热度按时间fdx2calv1#
我建议您使用“重新分区”函数,然后将重新分区的表注册为一个新的临时表,并进一步缓存它以加快处理速度。
如需进一步查询,请使用“newbigtbl”