首页 > 编程语言 >详解Java编写并运行spark应用程序的方法WordCount_tyt2023

详解Java编写并运行spark应用程序的方法WordCount_tyt2023

时间:2023-12-28 10:56:21浏览次数:32  
标签:Java -- WordCount 应用程序 RDD JavaRDD spark Spark

  • SparkContext:通往Spark集群的入口点,用于创建RDD和广播变量等
  • RDD:弹性分布式数据集,Spark应用程序的核心抽象
  • Transformation:操作RDD生成新的RDD,如map、filter等
  • Action:对RDD的操作,如count、collect等

 

  • 环境:Spark Standalone模式
  • 目标:计算文本文件中所有单词的出现频率
  • 输入文件:inputFile.txt
  • 输出文件:outputFile.txt
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.JavaRDD;
import java.util.Arrays;

public class WordCount {
  public static void main(String[] args) {
    SparkConf conf = new SparkConf().setAppName("WordCount").setMaster("local");
    JavaSparkContext sc = new JavaSparkContext(conf);
    JavaRDD<String> textFile = sc.textFile("inputFile.txt");
    JavaRDD<String> words = textFile.flatMap(line -> Arrays.asList(line.split(" ")).iterator());
    JavaRDD<String> filteredWords = words.filter(word -> word.length() > 0);
    JavaRDD<String> keyedWords = filteredWords.mapToPair(word -> new Tuple2(word, 1)).reduceByKey((x, y) -> x + y);
    keyedWords.saveAsTextFile("outputFile.txt");
    sc.close();
  }
}

  • spark-submit:Spark的提交脚本
  • main-class:包含 "main" 方法的类的名称
  • path-to-jar:包含 "main" 方法的类所在的JAR文件的路径
  • application-arguments:应用程序参数
将应用程序JAR文件提交到Spark集群
spark-submit --class <main_class> --master yarn --deploy-mode client <your_spark_app.jar> --input <input_path> --output <output_path>

标签:Java,--,WordCount,应用程序,RDD,JavaRDD,spark,Spark
From: https://www.cnblogs.com/playforever/p/17932240.html

相关文章

  • 2017 《Java 2实用教程(第5版)》是由耿祥义、张跃平编著
    我的研究生同学河南老乡河南工业大学Jackso_hao大学期间学习的Java教材  《Java2实用教程(第5版)》是由耿祥义、张跃平编著,2017年清华大学出版社出版的高等学校Java课程系列教材、普通高等教育“十一五”国家级规划教材。该教材既可作为高等院校相关专业Java程序设计的教材......
  • java的启动脚本
    java的启动脚本:run_java.sh脚本内容: -设置工作目录-设置必要的环境变量-设置JVM运行参数-运行程序创建运行脚本:使用run_java.sh来运行java程序1.修改run_.sh2.转成UNIX风格3.上传至Linux 4.添加+x权限,运行脚本 ......
  • 无涯教程-Java泛型 - 映射(Map)
    Java在Map接口中提供了泛型支持。GenericMap-语法Map<T>map=newHashMap<T>();map-Map接口的对象。T   -集合声明期间传递的泛型类型参数。T是传递给泛型接口Map及其实现类HashMap的类型参数。packagecom.learnfk;importjava.util.HashMap;importj......
  • java进行数据库操作的并发控制的2种方法
    本文分享自华为云社区《java进行数据库操作的并发控制》,作者:张俭。在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。即:Personperson=personRepo.findById(id);person.setAge(18);personRepo.save(person);但是这样的业务操作,如果一个线程修改......
  • java8 新特性(二)CompletableFuture类
    CompletableFuture是Java8中引入的一个新特性,它表示异步计算的结果。通过使用CompletableFuture,可以方便地处理异步计算,并能够在计算完成后执行回调函数。CompletableFuture是Java8中引入的一个功能强大的类,它实现了Future接口,并在此基础上进行了丰富的扩展,以简化异步编程的复......
  • 无涯教程-Java泛型 - 有界类型
    有时您可能想限制参数的类型,如对数字进行操作的方法可能只希望接受Number或其子类的,这就是有界类型参数的用途,使用extends实现。这个示例是泛型方法,返回三个Comparable对象中的最大对象-publicclassMaximumTest{//确定三个Comparable对象中最大的一个publics......
  • Java定义变量容易出错的点
    在Java中,定义的数值有默认的类型(整型为int、浮点型为double),所以在定义变量的时候要注意类型的问题。例如:因为给l的值(10000000000)默认类型是int类型,所以超出了范围;修改:在给的值后面加上L,......
  • Java基础2
    1.抽象类在Java中,抽象类(AbstractClass)是一种特殊类型的类,它不能被实例化,而是用于被其他类继承。抽象类可以包含抽象方法和具体方法。以下是关于抽象类的一些关键点:定义抽象类:使用abstract关键字定义抽象类。不能实例化抽象类,即不能使用new关键字创建抽象类的......
  • 无涯教程-Java泛型 - 原始类型
    如果原始类型的类型参数在创建过程中未传递,则原始类型是通用类或接口的对象。以下示例将展示上述概念。packagecom.learnfk;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer>box=newBox<Integer>();box.set......
  • 运行Java程序
    Java及环境变量:安装openjdk-8-jre-headlessls/usr/bin/java默认放在/usr/bin下,不需要额外设置PATH 提示:如果放在自定义位置,需要设置PATHexport PATH=$PATH:/opt/jdk8/bin运行Java程序:1.在Windows上开发和调试2.发布......