Spark学习笔记 ---workConut

Spark 学习笔记之—WordCount 笔记。

1.简单的解释:

1.SparkConf :

 SparkConf conf  = new SparkConf();
        conf.setMaster("local[5]");  
        conf.setAppName("WordConuts");
1.可以设置spark 的运行模式
		1.1 local --在eclipse ,IDEA中开发spark程序要用local模式,本地模式,多用于测试
        1.2 stanalone -- Spark 自带的资源调度框架,支持分布式搭建,Spark任务可以依赖standalone调度资源
        1.3.yarn -- hadoop 生态圈中资源调度框架。Spark 也可以基于yarn 调度资源
        1.4 mesos -- 资源调度框架
2.可以设置spark在webui 中显示的的application 的名称
3.可以设置当前spark application  运行内存(内存 + core)`

2.JavaSparkContext

--JavaSparkContext 是通往集群的唯一通道
JavaSparkContext sc = new JavaSparkContext(conf);
3.代码如下:
package com.wudl.spark.core;

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.Function2;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import scala.Tuple2;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class WordConuts {

    public static void main(String[] args) {
        /**
         * conf  :
         *        1.可以设置spark 的运行模式
         *            1.1 local --在eclipse ,IDEA中开发spark程序要用local模式,本地模式,多用于测试
         *            1.2 stanalone -- Spark 自带的资源调度框架,支持分布式搭建,Spark任务可以依赖standalone调度资源
         *            1.3.yarn -- hadoop 生态圈中资源调度框架。Spark 也可以基于yarn 调度资源
         *            1.4 mesos -- 资源调度框架
         *        2.可以设置spark在webui 中显示的的application 的名称
         *        3.可以设置当前spark application  运行内存(内存 + core)
         */
        SparkConf conf  = new SparkConf();
        conf.setMaster("local[1]");
        conf.setAppName("WordConuts");
        /*
        * sparkContext 是通往集群的唯一通道
        * */
        JavaSparkContext sc = new JavaSparkContext(conf);
        /**
         *  spark 读取文件
         */
        final JavaRDD<String> lines = sc.textFile("I:\\ideaWorkSpace\\com-wudl-spark\\ReadMe.txt");
        /**
         * flatMap 进一条数据出多条数据,一对多关系
         */
        JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
            public Iterator<String> call(String s) throws Exception {
                List<String> list = new ArrayList<String>();
                String[] arr = s.split(" ");
                for(String ss :arr){
                    list.add(ss);
                }
                return list.iterator();
            }
        });
        /**
         *  * 在java中 如果想让某个RDD转换成K,V格式 使用xxxToPair
         * 		 * K,V格式的RDD:JavaPairRDD<String, Integer
         */
        JavaPairRDD<String, Integer> pariWords = words.mapToPair(new PairFunction<String, String, Integer>() {
            public Tuple2<String, Integer> call(String word) throws Exception {
                return new Tuple2<String, Integer>(word, 1);
            }
        });
        /**
         *  reduceByKey
         * 		 * 1.先将相同的key分组
         * 		 * 2.对每一组的key对应的value去按照你的逻辑去处理
         */
        JavaPairRDD<String, Integer> result = pariWords.reduceByKey(new Function2<Integer, Integer, Integer>() {
            public Integer call(Integer v1, Integer v2) throws Exception {
                return v1 + v2;
            }
        });
        result.foreach(new VoidFunction<Tuple2<String, Integer>>() {
            public void call(Tuple2<String, Integer> stringIntegerTuple2) throws Exception {
                System.out.println("tuples---"+stringIntegerTuple2);
            }
        });
        sc.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值