当前位置: 首页 > 知识库问答 >
问题:

Spark数据帧的分区数

元玮
2023-03-14

有人能解释一下将为Spark Dataframe创建的分区数量吗。

我知道对于RDD,在创建它时,我们可以提到如下分区的数量。

val RDD1 = sc.textFile("path" , 6) 

但是对于创建时的Spark数据帧,看起来我们没有像RDD那样指定分区数量的选项。

我认为唯一的可能性是,在创建数据帧后,我们可以使用重新分区API。

df.repartition(4)

有人能告诉我在创建数据帧时,我们是否可以指定分区的数量。

共有2个答案

东门越
2023-03-14

Spark 数据帧中的默认随机分区数(200)

rdd中的默认分区数(10)

干子瑜
2023-03-14

您不能,或者至少在一般情况下不能,但与RDD相比并没有太大不同。例如textFile示例代码,您提供的示例代码仅设置最小分区数的限制。

总的来说:

> 使用本地集合上的< code>range或< code>toDF等方法在本地生成的< code >数据集将使用< code > spark . default . parallelism 。 从< code>RDD创建的< code >数据集从其父级继承分区数。 使用数据源API创建的< li>

数据集:

  • 在Spark 1. x中,通常取决于Hadoop配置(最小/最大拆分大小)。
  • 在Spark 2. x中,使用了SparkSQL特定配置。
 类似资料:
  • 我需要使用 spark-sql 加载一个 Hive 表,然后对其运行一些机器学习算法。我是这样写的: 它工作得很好,但如果我想增加数据集数据帧的分区数,我该怎么做?使用普通RDD,我可以写: 我想要有N个分区。 谢谢

  • 我们有没有可能在Spark中先按一列分区,然后再按另一列聚类? 在我的例子中,我在一个有数百万行的表中有一个< code>month列和一个< code>cust_id列。我可以说,当我将数据帧保存到hive表中,以便根据月份将该表分区,并按< code>cust_id将该表聚类成50个文件吗? 忽略按< code>cust_id的聚类,这里有三个不同的选项 第一种情况和最后一种情况在 Spark

  • 我正在查看代码中的一个错误,其中一个数据框被分成了太多的分区(超过700个),当我试图将它们重新分区为48个时,这会导致太多的洗牌操作。我不能在这里使用coalesce(),因为我想在重新分区之前首先拥有更少的分区。 我正在寻找减少分区数量的方法。假设我有一个 spark 数据帧(具有多个列),分为 10 个分区。我需要根据其中一列进行 orderBy 转换。完成此操作后,生成的数据帧是否具有相同

  • 我需要根据一些共享的键列将许多数据帧连接在一起。对于键值RDD,可以指定一个分区程序,以便具有相同键的数据点被洗牌到相同的执行器,因此连接更有效(如果在之前有与洗牌相关的操作)。可以在火花数据帧或数据集上做同样的事情吗?

  • 我需要spark(scala)数据帧分区方面的帮助。我需要按一个键列划分成n个分区,与同一个键相关的所有行都应该在同一个分区中(即,键不应该分布在整个分区中) 注意:我的钥匙可能有几百万 例如:假设我有下面的数据框 等等等等 正如您所看到的,许多值共享相同的键。我想将此数据集划分为"n"个分区,其中相同的键应该在相同的分区中,并且键不应该分布在分区之间。多个键驾驶室位于同一分区,键不可排序。 提前

  • 我一直在使用SE上发布的问题的一个极好的答案来确定分区的数量,以及跨数据帧的分区分布需要知道数据帧Spark中的分区详细信息 有人能帮我扩展答案来确定数据帧的分区大小吗? 谢谢