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

从Spark读取拼花地板数据时有多少个分区

东郭远航
2023-03-14

我正在使用Spark 1.6.0。以及用于读取分区拼花数据的DataFrame API。

我想知道将使用多少个分区。

以下是我的一些数据:

  • 2182个文件

Spark似乎使用了2182个分区,因为当我执行计数时,作业被拆分为2182个任务。

这似乎得到了df.rdd.partitions.length的证实

对吗?在所有情况下?

如果是,数据量是否过高(即我是否应该使用df重新分区来减少数据量)?

共有1个答案

饶谦
2023-03-14

是的,您可以使用重新分区方法来减少任务的数量,以便与可用资源保持平衡。在提交应用程序时,您还需要定义每个节点的执行者数量、节点数量和每个节点的内存,以便任务并行执行并利用最大资源。

 类似资料:
  • 我很难找到这个问题的答案。假设我为拼花地板编写了一个数据框,并且我使用与相结合来获得一个分区良好的拼花地板文件。请参阅下面: 现在,稍后我想读取拼花文件,所以我这样做: 数据帧是否由分区?换句话说,如果拼花地板文件被分区,火花在将其读入火花数据帧时是否会维护该分区。还是随机分区? 同样,这个答案的“为什么”和“为什么不”也会有所帮助。

  • 我试图利用火花分区。我试图做这样的事情 这里的问题每个分区都会创建大量的镶木地板文件,如果我尝试从根目录读取,则会导致读取缓慢。 为了避免这种情况,我试过 但是,这将创建每个分区中镶木地板文件的数目。现在我的分区大小不同了。因此,理想情况下,我希望每个分区都有单独的合并。然而,这看起来并不容易。我需要访问所有分区合并到一定数量并存储在单独的位置。 我应该如何使用分区来避免写入后出现许多文件?

  • 我是Spark的初学者,试图理解Spark数据帧的机制。当从csv和parquet加载数据时,我比较了spark sql dataframe上sql查询的性能。我的理解是,一旦数据加载到spark数据框中,数据的来源(csv或parquet)应该无关紧要。然而,我看到了两者之间的显著性能差异。我使用以下命令加载数据,并对其编写查询。 请解释差异的原因。

  • 我尝试从hdfs读取现有的拼花文件使用火花sql为我的POC,但击中OOM错误。 我需要读取给定分区日期的所有分区文件。分区如下:日期/file_dir_id 日期文件夹下有1200个子文件夹 拼花文件夹结构 日期: 文件\u dir\u 1 文件\u 1。拼花地板 文件2。拼花地板 文件\u 3。拼花地板 文件\u 3。拼花地板 当我尝试读取特定日期的文件时,上面提到的数字会引发ession.r

  • 我正在从Impala迁移到SparkSQL,使用以下代码读取一个表: 我如何调用上面的SparkSQL,这样它就可以返回这样的东西:

  • 我在分布式模式下仅在数据极顶部运行Drill 1.15(3个节点,每个节点有32GB内存)。我正在尝试读取HDF中Spark作业生成的拼花文件。 生成的文件正在spark中读取,很好,但在Drill中读取时,除了少数列之外,它似乎对其他列不起作用。 组织。阿帕奇。训练常见的例外。UserRemoteException:数据读取错误:从磁盘读取时发生异常。文件:[文件名]。拼花地板列:行组开始:11