spark将根据输入文件的大小自动决定分区的数量。我有两个问题:
我可以指定分区的编号而不是让火花决定多少分区吗?
重新分区时的洗牌有多糟糕?演出真的很贵吗?我的情况是,我需要重新分区为“1”才能写入一个Parquet文件,分区为“31”。有多糟糕?为什么?
重新分区和合并是用于读取数据后重新分区的两个函数。
无法执行此操作,分区数由文件大小决定。
spark如何给一个执行器分配一个分区? 当我使用 1 个驱动程序和 5 个执行器在火花外壳中运行以下行时: 重新分区后,10个分区仍然位于原来的两个节点上(总共5个)。这似乎非常低效,因为5个任务在包含分区的每个节点上重复运行,而不是平均分布在节点上。在同一个rdds上重复多次的迭代任务中,效率低下最为明显。 所以我的问题是,Spark如何决定哪个节点具有哪个分区,有没有办法强制将数据移动到其他
在Spark中,我有两个PairRDD(我们称之为A和B),每个由n个分区组成。我想根据它们的密钥加入这些RDD。 两个RDD都是一致分区的,也就是说,如果键x和y在RDD A中的同一个分区中,它们也在RDD B中的同一个分区中。对于RDD A,我可以保证分区是使用特定的分区器完成的。但是对于RDD B,分区索引可能不同于RDD A(RDD B是一些遗留库的输出,如果不是绝对必要的话,我不愿意碰它
一个executor在Spark中可以容纳多少个分区? 如何在执行程序之间分配分区(机制)? 如何设置分区的大小。想知道相关的config参数。 executor是否将所有分区存储在内存中?如果不是,当溢出到磁盘时,它是溢出整个分区到磁盘还是部分分区到磁盘?5当每个执行器有2个内核,但执行器中有5个分区时
我使用火花处理大文件,我有12个分区。我有rdd1和rdd2,我在它们之间建立了连接,而不是选择(rdd3)。我的问题是,我咨询了最后一个分区比其他分区太大,从分区1到分区11但分区12。所以我划分了。我将我的rdd3重新分区为,但我最后一个分区仍然太大。我如何平衡分区的大小? 我的i编写自己的自定义分区程序?
我有一个大约 100GB 的数据源,我正在尝试使用日期列对其进行分区。 为了避免分区内出现小块,我添加了一个重新分区(5 ),使每个分区内最多有5个文件: 我的问题是,在我分配的30个执行器中,只有5个在实际运行。最后我得到了我想要的东西(每个分区内有5个文件),但由于只有5个执行器在运行,所以执行时间非常长。 你有什么建议可以让我做得更快吗?