java - 是否需要到处设置分区号? Spark

标签 java apache-spark

我想知道一旦转换具有 numPartitions 参数,是否应该设置分区编号。 例如,当我在代码中创建第一个 RDD 时,我设置了分区号。如果我创建另一个RDD,默认分区号会与第一个RDD相同吗?

最佳答案

默认情况下,spark 会负责将数据集划分为分区。还将处理在初始之上执行的任何操作。

但是,有时您可能需要将所有数据放在一个分区中,以便根据您的功能需求更好地进行分组。那么分区号会有帮助。在此阶段,您还应该验证执行器的内存设置,因为现在所有数据都将位于一个分区中。

另一种情况是,当您执行过滤时。当您执行过滤时,即使大多数记录被过滤掉,内部也会保留相同的分区。这会导致空心隔断。所以在这种情况下,你可以合并。此方法需要 numOfPartitions。

还有 rePartition() 方法,它以 numOfPartitions 作为输入。这涉及到重新洗牌。您可以找到它们here

大家可以根据自己的需要来选择

关于java - 是否需要到处设置分区号? Spark ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996603/

相关文章:

java - Java 中的高效 XSLT 管道(或将结果重定向到源)

java - NativeQuery Spring Data 返回对象

apache-spark - 自定义 log4j 类不适用于 spark 2.0 EMR

apache-spark - 将大型机IMS数据导入Hadoop

java - 如何在 fragment 内添加带点指示器的图像 slider ?

java - 重新定义 webapp 位置 - web 资源的 maven 标准文件夹

java - 读取S3对象并写入InMemory Buffer

apache-spark - 如何在带有分隔符| @ |的spark sql中使用Split函数?

java - Spark (Java): Get Filename/Content pairs from a list of file names

r - 如何将 SparkR 数据框中的整数列转换为字符串?