相关疑难解决方法(0)

Spark聚合函数如何 - aggregateByKey有效吗?

假设我在3个节点上有一个分发系统,我的数据分布在这些节点中.例如,我有一个test.csv文件,它存在于所有3个节点上,它包含2列:

**row   | id,  c.**
---------------
row1  | k1 , c1  
row2  | k1 , c2  
row3  | k1 , c3  
row4  | k2 , c4  
row5  | k2 , c5  
row6  | k2 , c6  
row7  | k3 , c7  
row8  | k3 , c8  
row9  | k3 , c9  
row10 | k4 , c10   
row11 | k4 , c11  
row12 | k4 , c12 
Run Code Online (Sandbox Code Playgroud)

然后我使用SparkContext.textFile将文件读出为rdd等等.据我所知,每个spark worker节点都会读取文件中的一部分.所以现在让我们说每个节点都会存储:

  • 节点1:行1~4
  • 节点2:第5~8行
  • 节点3:第9~12行

我的问题是,假设我想对这些数据进行计算,我需要将一个键组合在一起,因此键值对将是[k1 [{k1 c1} {k1 c2} {k1 c3}]]..等等. …

distributed-computing apache-spark

40
推荐指数
2
解决办法
5万
查看次数

如果我没有足够的记忆,会有什么火花?

我是Spark的新手,我发现文档说Spark会将数据加载到内存中以使迭代算法更快.

但是,如果我有一个10GB的日志文件并且只有2GB的内存呢?Spark会一如既往地将日志文件加载到内存中吗?

apache-spark

16
推荐指数
2
解决办法
9153
查看次数

Spark RDD - 是否总是在RAM中的分区?

我们都知道Spark会在内存中进行计算.我只是好奇以下.

  1. 如果我RDD从HDFS在我的pySpark shell中创建10 ,它是否意味着所有这些10 RDD秒数据将驻留在Spark Workers Memory上?

  2. 如果我不删除RDD,它会永远存在于内存中吗?

  3. 如果我的数据集(文件)大小超过可用的RAM大小,那么数据将存储在何处?

hadoop hdfs apache-spark rdd pyspark

15
推荐指数
2
解决办法
6928
查看次数