当前位置: 首页 > news >正文

spark(day02)

案例
求中位数

package cn.tedu.wordcount

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object DriverMedian {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setMaster("local").setAppName("median")
    val sc=new SparkContext(conf)
    val data=sc.textFile("D://未来/spark练习文件/median.txt", 2)
    val r1=data.flatMap { line => line.split(" ") }.map { x => x.toInt }.sortBy{x=>x}
    val num=r1.count().toInt
    if(num%2==0){
      val m=r1.take(num/2+2)
      val n=r1.take(num/2)
      println((m.sum-n.sum)/2.toDouble)
    }else{
      println(r1.take((num+1)/2).last.toDouble)
    }
    
  }
}

二次计数

package cn.tedu.wordcount

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf

object DriverSsort {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setMaster("local").setAppName("median")
    val sc=new SparkContext(conf)
    val data=sc.textFile("D://未来/spark练习文件/ssort.txt", 1)
    
    // --RDD[String:line]->RDD[ (Ssort,line)]->SortByKey

    val r1=data.map { line => 
      val info=line.split(" ")
      val col1=info(0)
      val col2=info(1).toInt
      (new Ssort(col1,col2),line) 
    }
    //true----按类里定义的排序规则排序
    val r2=r1.sortByKey(true).map{x=>x._2}
    r2.foreach(println)
  }
}
package cn.tedu.wordcount

import java.io.Serializable
/* 
 * ssort中的两列数据
 * 引入分类方法 ctrl+1
 * */
class Ssort(val col1:String, val col2:Int) extends Ordered[Ssort] with Serializable{
  /*
	*此方法用于指定排序规则
	* 目标:先按第一列做升序排序
	* 再按第二列做降序排序
	*/

  def compare(that: Ssort): Int = {
    //--获取第一列升序排序比较的结果
    val result=this.col1.compareTo(that.col1)
    if(result==0){
      //--第一列升序排完后,按第二列做降序
      that.col2.compare(this.col2)
    }else{
      result
    }
  }
}

spark环境执行代码

package cn.tedu.wordcount2

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object Driver {
  def main(args: Array[String]): Unit = {
    //表示将代码运行在Spark集群环境下
    val conf=new SparkConf().setMaster("spark://hadoop01:7077").setAppName("wordcount2")
    val sc=new SparkContext(conf)
    val data=sc.textFile("hdfs://hadoop01:9000/data",3)
    
    val result=data.flatMap { x => x.split(" ") }.map { x => (x,1) }.reduceByKey{_+_}
    
    result.saveAsTextFile("hdfs://hadoop01:9000/result06")
  }
}

步骤
1.打成jar包
在这里插入图片描述
2.把jar包放到bin目录,执行指令,hafs下生成数据

[root@hadoop01 bin]# pwd
/home/presoftware/spark-2.0.1-bin-hadoop2.7/bin


[root@hadoop01 bin]# ll wor*
-rw-r--r--. 1 root root 4578 93 2022 wordcount.jar

#提交jar包指令---执行代码
[root@hadoop01 bin]# sh spark-submit --class cn.tedu.wordcount2.Driver wordcount.jar 

VSM(Vector Space Model)向量空间模型算法

这个算法用于文档排名
要根据相似度来实现排名。
学习VSM算法有两个基础:
①倒排索引表的概念
②相似度的概念

文档索引总的来分有两种:
①正向索引,建立的文档->词汇的索引
1.txt->hello 3; world 10
2.txt->spark 1; hive 8
②反向索引(倒排索引)
hello->1.txt 10; 3.txt 6hadoop->3.txt 5;

在这里插入图片描述

方差
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

倒排索引
在这里插入图片描述

相关文章:

  • 【我不熟悉的css】05. csc中使用变量,:root伪元素的应用
  • 03.2 线性回归的从零开始实现
  • js深复制一个数组
  • 03.3线性回归的简洁实现
  • 基于51单片机简易十字路口交通灯_5s全黄闪烁
  • 高并发、高性能、高可用的理解及处理方式
  • Faster R-CNN
  • AndroidSDK开发6我用kotlin写了一个简单sdk
  • Linux设置定时任务
  • 研发效能的逻辑:填补软工鸿沟
  • 如何为 Docker 容器设置内存限制
  • mysql的索引分类B+和hash详解
  • Kafka陌陌案例,220903,,
  • Vue 使用原生 js 实现锚点定位到指定位置
  • 64. 最小路径和 java解决
  • [译] React v16.8: 含有Hooks的版本
  • 0x05 Python数据分析,Anaconda八斩刀
  • DOM的那些事
  • Druid 在有赞的实践
  • es6要点
  • express.js的介绍及使用
  • interface和setter,getter
  • Linux下的乱码问题
  • Redis中的lru算法实现
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • use Google search engine
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 少走弯路,给Java 1~5 年程序员的建议
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • $NOIp2018$劝退记
  • %@ page import=%的用法
  • (4)事件处理——(7)简单事件(Simple events)
  • (C#)获取字符编码的类
  • (ZT)一个美国文科博士的YardLife
  • (二)c52学习之旅-简单了解单片机
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (五)网络优化与超参数选择--九五小庞
  • (转)平衡树
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net CHARTING图表控件下载地址
  • .net 设置默认首页
  • .net 验证控件和javaScript的冲突问题
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net打印*三角形
  • .NET使用存储过程实现对数据库的增删改查
  • .NET下的多线程编程—1-线程机制概述
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @DataRedisTest测试redis从未如此丝滑
  • @RequestMapping 的作用是什么?