在windows上实现wordcount单词统计

一、编写scala程序,引入spark类库,完成wordcount

  1.sparkcontextAPI

sparkcontext是spark功能的主要入口点,代表着到spark集群的连接,可用于在这些集群上创建RDD(弹性分布式数据集),累加器和广播变量。在每一个JVM上面只允许一个活跃的sparkcontext。在创建一个新的RDD之前,你应该停止这个活跃的SparkContext

  2.sparkconf配置对象

  sparkconf是对spark应用的配置,用来设置键值对的各种spark参数。大多数的时候,你需要通过new sparkconf的方式来创建一个对象,会从任何的spark系统属性中记性加载,从这个方面来讲,你在sparkconf上设置的参数会直接影响你在整个系统属性中的优先级

  3.scala版单词统计:wordCount

import org.apache.spark.SparkContext

import org.apache.spark.SparkConf

object WordCount {
def main(args: Array[String]): Unit = {
//创建spark配置对象
val conf = new SparkConf();
//设置app名字
conf.setAppName("WordConf")
//创建master
conf.setMaster("local");
//创建spark上下文对象
val sc = new SparkContext(conf);
//加载文本文件
val rdd1 = sc.textFile("E:\\studyFile\\data\\test.txt")
//对rdd1中的对象压扁
val rdd2 = rdd1.flatMap(line=>line.split(" "))
//映射w=>(w,1)
val rdd3 = rdd2.map((_,))
val rdd4 = rdd3.reduceByKey(_ + _)
val r= rdd4.collect()
//遍历打印
r.foreach(println)
}
}

  3.java版单词统计:wordCount

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 scala.Tuple2; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class WordCountJava2 {
//创建conf对象
public static void main(String[] args){
SparkConf conf = new SparkConf();
conf.setAppName("WordCountJava2");
conf.setMaster("local");
//创建java版的sparkContext上下文对象
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> rdd1=sc.textFile("E:/studyFile/data/test.txt");
//先将单词压扁
JavaRDD<String> rdd2 = rdd1.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();
}
});
//映射,将单词映射为:word===>(word,1)
JavaPairRDD<String,Integer> rdd3=rdd2.mapToPair(new PairFunction<String, String, Integer>() { public Tuple2<String, Integer> call(String s) throws Exception {
return new Tuple2<String, Integer>(s,);
}
});
JavaPairRDD<String,Integer> rdd4 = rdd3.reduceByKey(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer v1, Integer v2) throws Exception {
//函数捏合的过程
return v1+v2;
}
});
List<Tuple2<String,Integer>> list=rdd4.collect();
for(Tuple2<String,Integer> t :list){
System.out.println(t._1+":"+t._2);
}
}
}

  4.提交作业到完全分布式spark集群上来运行

    1)到处jar包

    2)spark-submit --master local --name WordCount  --class  com.jd.spark.scala.WordCountDemoScala   spark-daemon1-1.0-SNAPSHOT.jar     /home/centos/test.txt

    

  5.提交作业到完全分布式spark集群上来运行(只需要hdfs)

    1)需要启动hadoop集群

      $>start-dfs.sh

    2)put文件到hdfs

      hdfs dfs -put test.txt /user/centos/hadoop/

    2)spark-submit提交命令运行job

      $>spark-submit --master spark://s11:7070 --name WordCount   --class  com.jd.spark.scala.WordCountDemoScala spark-daemon1-1.0-SNAPSHOT.jar   hdfs://s11:8020/user/centos/hadoop/test.txt

  

spark复习笔记(3)的更多相关文章

  1. spark复习笔记(1)

    使用spark实现work count ---------------------------------------------------- (1)用sc.textFile(" &quo ...

  2. spark复习笔记(7):sparkstreaming

    一.介绍 1.sparkStreaming是核心模块Spark API的扩展,具有可伸缩,高吞吐量以及容错的实时数据流处理等.数据可以从许多来源(如Kafka,Flume,Kinesis或TCP套接字 ...

  3. spark复习笔记(7):sparkSQL

    一.saprkSQL模块,使用类sql的方式访问Hadoop,实现mr计算,底层使用的是rdd 1.hive //hadoop  mr  sql 2.phenoix //hbase上构建sql的交互过 ...

  4. spark复习笔记(6):RDD持久化

    在spark中最重要的功能之一是跨操作在内存中持久化数据集.当你持久化一个RDD的时候,每个节点都存放了一个它在内存中计算的一个分区,并在该数据集的其他操作中进行重用,持久化一个RDD的时候,节点上的 ...

  5. spark复习笔记(6):数据倾斜

    一.数据倾斜 spark数据倾斜,map阶段对key进行重新划分.大量的数据在经过hash计算之后,进入到相同的分区中,zao

  6. spark复习笔记(4):RDD变换

    一.RDD变换 1.返回执行新的rdd的指针,在rdd之间创建依赖关系.每个rdd都有一个计算函数和指向父rdd的指针 Spark是惰性的,因此除非调用某个转换或动作,否则不会执行任何操作,否则将触发 ...

  7. spark复习笔记(5):API分析

    0.spark是基于hadoop的mr模型,扩展了MR,高效实用MR模型,内存型集群计算,提高了app处理速度. 1.特点:(1)在内存中存储中间结果 (2)支持多种语言:java scala pyt ...

  8. spark复习笔记(4):spark脚本分析

    1.[start-all.sh] #!/usr/bin/env bash # # Licensed to the Apache Software Foundation (ASF) under one ...

  9. spark复习笔记(3):使用spark实现单词统计

    wordcount是spark入门级的demo,不难但是很有趣.接下来我用命令行.scala.Java和python这三种语言来实现单词统计. 一.使用命令行实现单词的统计 1.首先touch一个a. ...

随机推荐

  1. 【leetcode】K-th Symbol in Grammar

    题目如下: 解题思路:直接把每行的数据计算出来肯定是不行的,因为N最大是30,那个第N行长度就是2^30次方,这显然不可取.那么就只能找规律了,我采取的是倒推法.例如假如我们要求出第四行第七个元素的值 ...

  2. 3D打印格式STL

    STL格式及其转换 近期接触了3D打印的一些东西,也制作了一个vrml转stl的插件,对该领域多了一些认识. 目前尚没有打印机直接支持stl.obj等格式,在打印之前需使用厂家提供的软件将stl等格式 ...

  3. Spring boot @Transactional

    1.注解@Transactional 2.异常回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @Ov ...

  4. ubuntu1804隐藏顶部工作栏

    先安装 sudo apt-get install gnome-shell-extension-autohidetopbar 然后安装 sudo apt-get install gnome-shell- ...

  5. Bugku 杂项 猜

    猜 说flag是一个人名字的全拼,直接搜图片

  6. GPSMap程序源代码

    1. 界面 第一次打开时选择工程文件 MainActivity.java Tools.OpenDialog(new ICallback(){ public void OnClick(String pa ...

  7. 《SQL Server 2012 T-SQL基础》读书笔记 - 6.集合运算

    Chapter 6 Set Operators 语法如下: Input Query1 <set_operator> Input Query2 [ORDER BY ...] 有ORDER B ...

  8. React-Native 之 GD (三)近半小时热门

    1.设置页面跳转 半小时热门组件  GDHalfHourHot.js /** * 近半小时热门 */ import React, { Component } from 'react'; import ...

  9. 嵌入式Linux之telnet

    telnetd   1.busybox搭建根文件系统时telnet配置Networking Utilities——>[*]telnetd[*]Support standalone telnetd ...

  10. DAY 6 上午

    如果不是割点,答案减少2(n-1) 如果删去割点,删去之后整个图分成多个连通块 每一个联通块的大小*其他连通块的大小之和 先求出缩点之后的树 加尽可能少的边使树变成一个边双 找出树上的所有叶子节点(度 ...