日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

spark java 计数_spark程序——统计包含字符a或者b的行数

發(fā)布時(shí)間:2023/12/4 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark java 计数_spark程序——统计包含字符a或者b的行数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇分析一個(gè)spark例子程序。

程序?qū)崿F(xiàn)的功能是:分別統(tǒng)計(jì)包含字符a、b的行數(shù)。

java源碼如下:

package sparkTest;

import org.apache.spark.SparkConf;

import org.apache.spark.api.java.JavaRDD;

import org.apache.spark.api.java.JavaSparkContext;

import org.apache.spark.api.java.function.Function;

public class SimpleApp {

public static void main(String[] args) {

String logFile = "file:///usr/local/spark/README.md"; // Should be some file on your system

SparkConf conf = new SparkConf().setAppName("Simple Application").setMaster("local");

JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD logData = sc.textFile(logFile).cache();//將文件cache在內(nèi)存中

long numAs = logData.filter(new Function() {//保留包含a的元素

public Boolean call(String s) {

return s.contains("a");//

}

}).count();//RDD元素總數(shù)

long numBs = logData.filter(new Function() {//String為輸入類(lèi)型,保留Boolean為true元素

public Boolean call(String s) {

return s.contains("b");

}

}).count();

System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);

}

}

基本步驟解析如下:

1、設(shè)置sparkContext,包括sparkConf,讀取文件的地址和協(xié)議。

2、將文件內(nèi)容cache()在內(nèi)存中。經(jīng)過(guò)實(shí)驗(yàn),不cache()也能執(zhí)行顯示正確結(jié)果。

3、JavaRDD.filter()。對(duì)元素進(jìn)行過(guò)濾,過(guò)濾的方法是函數(shù)Function(String, Boolean)。

具體定義在call(String s)中。

其中Function的參數(shù)String與call的參數(shù)String對(duì)應(yīng)。Function的參數(shù)Boolean與call函數(shù)返回值Boolean類(lèi)型對(duì)應(yīng)。

返回Boolean為true的元素通過(guò)filter,保留在新生成的RDD中。

4、JavaRDD.count()對(duì)RDD元素個(gè)數(shù)進(jìn)行統(tǒng)計(jì)。

5、最后,打印結(jié)果。

注意:這里的filter()、count()對(duì)應(yīng)的就是transformation、action。

總結(jié)

以上是生活随笔為你收集整理的spark java 计数_spark程序——统计包含字符a或者b的行数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。