专栏首页Catororyspark Pi && word count计算
原创

spark Pi && word count计算

方法:蒙特卡罗法,又叫随机抽样或统计

步骤

1.构造一个边长为1的正方形和1/4的圆(正方形面积1大于圆面积π/4)

2.随机向正方形内随机找n个点,计算每一个点到圆心的距离,小于1的就是圆内的点,假设数量是count

3. 4*count/n的值就是π的值,spark中的pi就是用这种方法算的

val sparkSession = SparkSession.builder().master("local).getOrCreate()
val sc = sparkSession.sparkContext
val slices = 6
val n = 600000
val count = spark.parallelize(1 to n, slices).map { i =>
    val x = random * 2 - 1
    val y = random * 2 - 1
    if ( x*x + y*y < 1) 1 else 0
   }.reduce(_ + _)
val pi = 4.0 * count / n
println(pi)
sparkSession.stop()

object WordCount {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("wordcount")
    val sc = new SparkContext(conf)
    val input = sc.textFile("/data/spark/demo/word_count")
    val lines = input.flatMap(line => line.split(" "))
    val count = lines.map(word => (word, 1)).reduceByKey(_ + _)
    val output = count.saveAsTextFile("/data/spark/demo/word_count_result")
  }
}

File - Project Structure - Artifacts - "+" - Jar - from modules
Build - Build Artifacts

./bin/spark-submit \
--mater spark://localhost:9000 \
--class WordCount /data/spark/demo/jar/spark-demo.jar

参考

https://www.cnblogs.com/aze-003/p/5127192.html

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kafka Exactly Once实现原理

      上面3种EOS语义有着不同的应用范围,幂等producr只能保证单分区上无重复消息;事务可以保证多分区写入消息的完整性;而流处理EOS保证的是端到端(E2E...

    用户6404053
  • Java8中的接口和抽象类的区别

    今天跑了好远去面试,面试官问了上面这个问题,我是一脸懵比,抽象类我自己没写过,JAVA8对接口有什么修改完全没印象,现在来总结一下,至少下次再遇到这个问题要答上...

    用户6404053
  • spark 多表 join

    1.Broadcast Hash Join(小表广播,小表Join大表)(分布式改造)

    用户6404053
  • Android实现屏幕录制功能

    本文实例为大家分享了Android实现屏幕录制功能的具体代码,供大家参考,具体内容如下

    砸漏
  • ISBDaily(20190621)

    1. libsrt[C] 一个极速纯C库,自称包含了string/vector/bit set/set/map/hash set/hash map等实现

    代码医生工作室
  • Akka(35): Http:Server side streaming

       在前面几篇讨论里我们都提到过:Akka-http是一项系统集成工具库。它是以数据交换的形式进行系统集成的。所以,Akka-http的核心功能应该是数据交换...

    用户1150956
  • 剑指Offer-把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成...

    武培轩
  • Machine Learning学习——定义、监督学习和无监督学习

    1.Arther Samuel(1959):Machine Learning:Field fo study that gives computers the a...

    阳光罗诺
  • 使用Java打印字符串表格(中英文内容不乱)

    最近在学习使用java来编写cli应用,但是在信息展示上碰到了难题。原因是没有很好工具来展示一个由字符串组成的表格。在git上搜到阿里巴巴有一个叫做 text-...

    何白白
  • [android] 手机卫士手机实现短信指令获取位置

    转换标准坐标为火星坐标,数据库文件放到assets目录下,把ModifyOffset.java放在service包下面

    陶士涵

扫码关注云+社区

领取腾讯云代金券