pyspark使用spark在一个大文件中进行wordcount

dpiehjr4  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(419)

我有一个关于如何使用spark处理大文件的问题。假设我有一个非常大的文件(1 tb),而我只能访问集群中的500gb ram。一个简单的wordcount应用程序如下所示: sc.textfile(path_to_file).flatmap(split_line_to_words).map(lambda x: (x,1)).reduceByKey() 当我没有足够的内存时,上面的应用程序会因为oom而失败吗?如果是这样,我有什么方法可以解决这个问题?

gojuced7

gojuced71#

好吧,这不是问题。
n个分区等于hdfs(like)文件系统的块大小,将在物理上的某个阶段在工作节点上创建,从而在spark应用程序的生命周期内,可以轻松地在500gb内执行许多n个小任务。
分区及其等效任务将根据您分配的执行器数量并发运行。例如,如果有m个执行器具有1个核心,那么最多可以并发运行m个任务。还取决于调度和资源分配模式。
spark句柄就像任何操作系统一样,在大小和资源的情况下,根据可用资源的不同,或多或少都可以完成。dag调度程序在这一切中起着重要作用。但在这里保持简单。

相关问题