spark-学习笔记--1 wordcount
spark RDD
spark :分布式、基于内存、迭代式、
RDD :弹性分布式数据集
RDD是一个逻辑上的数据集合 可以分为多个分区 分布到不同的机器上
RDD的弹性: 默认是放在节点内存里的 ,内存装不下时会放到磁盘,但这对使用者是透明的。
自动的进行内存和磁盘切换机制 就是它说的弹性。
RDD的容错性 :节点失败 会从源重新计算
spark 核心编程:
1、定义初始的RDD 读取数据
2、定义算子-- 对数据的操作
3、多步操作处理数据
4、保存结果
package com.yzl.spark.sparkstudy; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.Function; import org.apache.spark.api.java.function.Function2; import org.apache.spark.api.java.function.PairFunction; import org.apache.spark.api.java.function.VoidFunction; import scala.Tuple2; /** * Hello world! * */ public class App { public static void main(String[] args) { // 1、创建 SparkConf SparkConf sc = new SparkConf(); sc.setAppName("wordCount"); sc.setMaster("local"); // 2、创建JavaSparkContext JavaSparkContext jsc = new JavaSparkContext(sc); // 3、创建RDD JavaRDD<String> lines = jsc.textFile("/666666666.txt"); JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() { public Iterator<String> call(String arg0) throws Exception { List<String> list = Arrays.asList(arg0.split(" |\\.|_|=|/")); ArrayList<String> arrayList = new ArrayList<String>(list); return arrayList.iterator(); } }); JavaPairRDD<String, Integer> pair = words.mapToPair(new PairFunction<String, String, Integer>() { public Tuple2<String, Integer> call(String key) throws Exception { return new Tuple2<String, Integer>(key, 1); } }); JavaPairRDD<String,Integer> counts = pair.reduceByKey(new Function2<Integer, Integer, Integer>() { public Integer call(Integer arg0, Integer arg1) throws Exception { return arg0 + arg1; } }); //action counts.foreach(new VoidFunction<Tuple2<String,Integer>>() { public void call(Tuple2<String, Integer> arg0) throws Exception { System.out.println(arg0._1 +"------"+arg0._2); } }); jsc.close(); } }
相关推荐
Spark笔记1.docx Spark 是什么? Spark 是一个基于内存的统一分析引擎,用于大规模数据处理,包括离线计算、实时计算和快速查询(交互式查询)。它具有快、易用和通用等特点,可以进行离线计算、交互式查询、实时...
- **WordCount示例**:在Spark Shell中,可以编写并运行WordCount等简单示例,观察任务执行过程和结果。 - **资源调度**:Sparksubmit向Master申请资源,Master根据资源池分配Executor给Worker节点。 总结:Spark...
Apache Spark 是一个强大的分布式计算框架,它以高效的数据处理、实时分析和机器学习能力而闻名。Spark 提供了丰富的 API,其中包括对 Scala 的原生支持,使得开发人员能够利用 Scala 的强大功能进行大规模数据处理...
Spark Core学习 对最近在看的赵星老师Spark视频中关于SparkCore的几个案例进行总结。 目录1.WordCountWordCount 执行流程详解2.统计最受欢迎老师topN1. 方法一:普通方法,不设置分组/分区2. 方法二:设置分组和过滤...
- 分布式计算中的MapReduce和Spark的wordcount实例:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。Word Count是一个经典的MapReduce编程实例,用于计算文本文件中单词的出现次数。这个实例通常...
手写代码章节详细介绍了常见的算法和数据结构的实现,如冒泡排序、二分查找、快速排序、归并排序、二叉树以及基于Scala的Spark-WordCount实现。这些算法是面试中考察算法能力的常见问题,掌握这些算法对于通过技术...
1. installHadoop_V2.sh:此脚本负责安装和配置Hadoop,它是大数据处理中最为重要的组件之一,提供了分布式存储和计算的框架。Hadoop的核心包括HDFS(Hadoop Distributed File System)和MapReduce编程模型。 2. ...