在这个例子中,是一个4-core的CPU笔记本;Spark创建了4个executor然后把数据分成4个块。colloect()方法很危险数据量上BT文件读入会爆掉内存……
甚至可以sc.wholeTextFiles读入整个文件夾的所有文件。但是要特别注意这种读法,RDD中的每个item实际上是一个形如(文件名文件所有内容)的元组。读入整个文件夹的所有文件
其餘初始化RDD的方法,包括:HDFS上的文件Hive中的数据库与表,Spark SQL得到的结果这里暂时不做介绍。
特别注意:Spark的一个核心概念是惰性计算当你把一个RDD转换成另一个的时候,这个转换不会立即生效执行!!!Spark会把它先记在心里等到真的有actions需要取转换结果时,才会重新组织transformations(因为可能有一连串的变换)这样可以避免不必要的中间结果存储和通信。
常见的action如下当它们出现的时候,表明需要执行上面定义过的transform了:
first(): 和上面是类似的不过只返回第1个item