`

spark-学习笔记--1 wordcount

 
阅读更多

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笔记1.docx Spark 是什么? Spark 是一个基于内存的统一分析引擎,用于大规模数据处理,包括离线计算、实时计算和快速查询(交互式查询)。它具有快、易用和通用等特点,可以进行离线计算、交互式查询、实时...

    spark学习笔记,完成于2022年04月13日

    - **WordCount示例**:在Spark Shell中,可以编写并运行WordCount等简单示例,观察任务执行过程和结果。 - **资源调度**:Sparksubmit向Master申请资源,Master根据资源池分配Executor给Worker节点。 总结:Spark...

    spark-scala-tutorial:Apache Spark的免费教程

    Apache Spark 是一个强大的分布式计算框架,它以高效的数据处理、实时分析和机器学习能力而闻名。Spark 提供了丰富的 API,其中包括对 Scala 的原生支持,使得开发人员能够利用 Scala 的强大功能进行大规模数据处理...

    Spark Core 笔记02

    Spark Core学习 对最近在看的赵星老师Spark视频中关于SparkCore的几个案例进行总结。 目录1.WordCountWordCount 执行流程详解2.统计最受欢迎老师topN1. 方法一:普通方法,不设置分组/分区2. 方法二:设置分组和过滤...

    第10课 Python分布式计算笔记.pdf

    - 分布式计算中的MapReduce和Spark的wordcount实例:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。Word Count是一个经典的MapReduce编程实例,用于计算文本文件中单词的出现次数。这个实例通常...

    超全大数据面试宝典-大数据面试有这套就够了.pdf

    手写代码章节详细介绍了常见的算法和数据结构的实现,如冒泡排序、二分查找、快速排序、归并排序、二叉树以及基于Scala的Spark-WordCount实现。这些算法是面试中考察算法能力的常见问题,掌握这些算法对于通过技术...

    最简大数据组件单节点安装步骤

    1. installHadoop_V2.sh:此脚本负责安装和配置Hadoop,它是大数据处理中最为重要的组件之一,提供了分布式存储和计算的框架。Hadoop的核心包括HDFS(Hadoop Distributed File System)和MapReduce编程模型。 2. ...

Global site tag (gtag.js) - Google Analytics