1、RDD概念
RDD的全称是弹性分布式数据集(Resilient Distributed Dataset),它是Spark对数据的核心抽象。在Spark中,对数据的操作可简单概括为创建RDD、转化RDD和调用RDD进行求值。此外,Spark会将RDD数据分发到集群的各个节点,并行执行。
2、创建RDD
Spark提供了两种创建RDD的方法,一个是通过程序中的集合,另一个是读取外部数据(包含读取本地文件和HDFS文件等)。
(1)通过集合创建RDD
最简单的创建RDD的方法是将代码中的集合传给SparkContext中的parallelize()方法。示例如下:JavaSparkContext sc = new JavaSparkContext();
JavaRDD city = sc.parallelize(Arrays.asList("beijing", "shanghai", "shenzhen"));
System.out.println(city.collect());
该方法可以方便我们在spark-shell中快速创建出需要的RDD,因此在我们学习Spark时经常用到,但在实际应用场景中,这种方法使用的极少。
(2)通过读取外部数据创建RDD
读取外部数据创建RDD使我们生产环境中经常会用到的方法,外部数据通常会包含本地文件、HDFS文件、MongoDB数据库等,下面苦李以读取本地日志文件为示例进行说明,示例如下:String logFile = "likuli_com_access.log";
SparkSession spark = SparkSession
.builder()<