package spark;

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.sql.SparkSession;
import scala.Tuple2;
import java.util.Arrays;
import java.util.List; /**
* Created by kkxwz on 2018/5/24
*/
public class WordCountApp { public static void main(String[] args) { // //spark 2.0版本之前
// SparkConf sparkConf = new SparkConf().setAppName("WordCountApp").setMaster("local[2]");
// JavaSparkContext spark = new JavaSparkContext(sparkConf);
// JavaRDD<String> lines= spark.textFile("/Users/zl/data/sparksqldata/hello.txt"); // spark 2.0版本之后(建议)
SparkSession spark = SparkSession.builder()
.master("local[2]")
.appName("WordCountApp")
.getOrCreate(); JavaRDD<String> lines= spark.read().textFile("/Users/zl/data/sparksqldata/hello.txt").javaRDD();
JavaRDD<String> words = lines.flatMap(line -> Arrays.asList(line.split("\t")).iterator());
JavaPairRDD<String, Integer> counts = words
.mapToPair(word -> new Tuple2<String, Integer>(word, 1))
.reduceByKey((x, y)-> x+y); //第一种输出方式:
counts.foreach(count -> System.out.println(count._1() + ":" + count._2())); //第二种输出方式:
// List<Tuple2<String, Integer>> output = counts.collect();
//
// for(Tuple2<String, Integer> tuple : output){
// System.out.println(tuple._1() + ":" + tuple._2());
// } spark.stop();
} } // PS:
// 1、jdk版本至少为1.8
// 2、最好关联源码,查看返回类型学习!!!

  

使用java开发spark的wordcount程序(多种实现)的更多相关文章

  1. 编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]

    编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6 ...

  2. [转] 用SBT编译Spark的WordCount程序

    问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? [sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需 ...

  3. 用SBT编译Spark的WordCount程序

    问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需要 ...

  4. 在IDEA中编写Spark的WordCount程序

    1:spark shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包 ...

  5. spark运行wordcount程序

    首先提一下spark rdd的五大核心特性: 1.rdd由一系列的分片组成,比如说128m一片,类似于hadoop中的split2.每一个分区都有一个函数去迭代/运行/计算3.一系列的依赖,比如:rd ...

  6. 使用Java开发桌面即时通讯程序遇到的问题

    项目:https://www.lking.top/?p=87 1. JPanel面板绘制背景图片问题. 参考大佬:https://www.jb51.net/article/101516.htm 本项目 ...

  7. 用java开发的网站或者程序

    中国移动的官网即其相关业务系统 阿里巴巴.淘宝网 58同城是java做的后台 铁道部12306 腾讯的拍拍网等 各大银行的交互应用系统,比如有的信用卡网银 另外,Android手机的大部分应用,其他智 ...

  8. java开发之发牌小程序

    发牌规则  黑桃按照从小到大依次为:1-13 红桃按照从小到大依次为:14-26 梅花按照从小到大依次为:27-39 方块按照从小到大依次为:40-52 小王53  大王54 代码实现: packag ...

  9. Spark练习之通过Spark Streaming实时计算wordcount程序

    Spark练习之通过Spark Streaming实时计算wordcount程序 Java版本 Scala版本 pom.xml Java版本 import org.apache.spark.Spark ...

随机推荐

  1. 读取文件不是真实的具体路径 setZh.ini

    读取 c:\windows\Syswow64\XX\XX.ini 时内容不正确. 发现真实文件为: C:\Users\用户名\AppData\Local\VirtualStore\Windows\Sy ...

  2. Docker中使用Tomcat并部署war工程

    准备 首先从远程仓库拉取Tomcat镜像到本地. docker pull tomcat 使用images命令查看是否拉取成功. 创建镜像文件并将war包上传到同级目录下.(本文是在/usr/local ...

  3. xLearn

    https://blog.csdn.net/songbinxu/article/details/79662665

  4. 用spring的@Scheduled实现定时任务

    先在spring的配置文件中添加扫描 在applicationContext.xml中添加  <task:annotation-driven/>,我用的是idea有提示功能 选择第一个后会 ...

  5. Taro开发微信小程序之利用腾讯地图sdk标记

    首先要下载腾讯地图提供的sdk,放在项目的对应目录下,引用. import QQMapWX from '../../sdks/qqmap-wx-jssdk' 设置好后,就可以开始使用了. let qq ...

  6. 101210-450789-147200(可以激活Xshell5,而且可以升级) 亲测可用 只能用于xshell5

    101210-450789-147200(可以激活Xshell5,而且可以升级) 亲测可用 只能用于xshell5

  7. Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期

    1.获取当前时间一周前的日期 ' day from dual 类似的 --当前时间减去7分钟的时间 ' MINUTE from dual --当前时间减去7小时的时间 ' hour from dual ...

  8. 一些用Css实现的效果

    今天写一个笔试题,其中有一个是用css实现直角梯形的效果,我给出的答案是: <style> .wrap{ width: 100px; height: 50px; border-top:90 ...

  9. Ubuntu 批量添加用户

    #!/bin/bash cat user.txt | while read linedo    user=$(echo $line | cut -d ' ' -f1)    passwd=$(echo ...

  10. BigDecimal 类型转换、运算、比较

    序:Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数 ...