MapReduce关系代数运算——差

关系沿用上一个选择运算的关系R和S,StudentR类也是一致的,本博文中就不赘述了。

MapReduce程序设计

  • DifferenceMap
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;public class DifferenceMap extends Mapper<LongWritable, Text, Person, Text> {private Text relationName = new Text();protected void setup(Context context) throws java.io.IOException, InterruptedException {FileSplit fileSplit = (FileSplit) context.getInputSplit();relationName.set(fileSplit.getPath().getName());};protected void map(LongWritable key, Text value, Context context) throws java.io.IOException, InterruptedException {Person person = new Person(value.toString());context.write(person, relationName);};}
  • DifferenceReduce
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;public class DifferenceReduce extends Reducer<Person, Text, Person, NullWritable> {private String remove = "";protected void setup(Context context) throws java.io.IOException, InterruptedException {Configuration conf = context.getConfiguration();remove = conf.get("remove");};protected void reduce(Person key, Iterable<Text> values, Context context) throws java.io.IOException, InterruptedException {for (Text val : values) {if (remove.equals(val.toString())) {return;}}context.write(key, NullWritable.get());};}
  • Difference
import java.io.IOException;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class Difference {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {if (args == null || args.length != 3) {throw new RuntimeException("请输入输入路径、输出路径和被减集合");}Configuration conf = new Configuration();conf.set("remove", args[2]);Job job = Job.getInstance(conf);job.setJobName("Difference");job.setJarByClass(Difference.class);job.setMapperClass(DifferenceMap.class);job.setMapOutputKeyClass(Person.class);job.setMapOutputValueClass(Text.class);job.setReducerClass(DifferenceReduce.class);job.setOutputKeyClass(Person.class);job.setOutputValueClass(NullWritable.class);FileInputFormat.addInputPaths(job, args[0]);FileOutputFormat.setOutputPath(job, new Path(args[1]));System.exit(job.waitForCompletion(true) ? 0 : 1);}}

运行

像之前的WordCount一样将代码打包出来,生成Difference.jar文件。

hadoop jar Difference.jar /input /output relationB

欢迎查看我的博客:Welcome To Ryan’s Home

MapReduce关系代数运算——差相关推荐

  1. MapReduce关系代数运算——选择

    MapReduce关系代数运算 常见的MapReduce关系代数运算有:选择.投影.并.交.差以及自然连接操作等,本文将介绍选择运算.后续博文介绍其他运算. 关系R 关系R id name age g ...

  2. MapReduce关系代数运算——投影

    MapReduce关系代数运算--投影 关系沿用上一个选择运算的关系R,StudentR类也是一致的,本博文中就不赘述了. MapReduce程序设计 Projection import org.ap ...

  3. MapReduce关系代数运算——自然连接

    MapReduce关系代数运算--自然连接 关系沿用之前的R. 创建两个文件 表1 student id name sex age 1 Amy female 18 2 Tom male 19 3 Sa ...

  4. MapReduce关系代数运算

    常见关系代数运算包括:选择.投影.并.交.差以及自然连接操作等,都可以十分容易利用MapReduce框架进行并行化计算 关系R NAME SEX AGE 小明 男 25 小红 女 18 小张 男 22 ...

  5. MapReduce的关系代数运算

    关系代数 概念 R(A1,A2,...,An)R(A_1,A_2,...,A_n)R(A1​,A2​,...,An​)表示关系的名称是RRR,其属性是A1,A2,...,AnA_1,A_2,...,A ...

  6. MapReduce 基础算法【关系代数运算】

    关系代数运算 MapReduce可以在关系代数的运算上发挥重要的作用,因为关系代数运算具有数据相关性低的特性,这使得其便于进行MapReduce的并行化算法设计. 常见的关系代数运算包括选择.投影.并 ...

  7. mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记

    1.关系代数运算符 集合运算符:并(U).差(-).交(∩).笛卡尔积(×) 专门的关系运算符:选择(∂).投影(π).连接(∞).除(÷) 算术比较符:大于(>).大于等于(≥).小于(< ...

  8. 计算机二级关系代数运算知识点,计算机二级:关系代数运算.doc

    精品文档 . 公共基础专题探究--关系代数运算 序号 高频考点 1 自然连接:一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉 自然连接满足下面的条 ...

  9. 计算机等级关系代数,计算机二级:关系代数运算

    计算机二级:关系代数运算 计算机二级:关系代数运算 作者: 日期: 公共基础专题探究一一关系代数运算 序高频考点 号 1自然连接一种特殊的等值连接它要求两个关系中进行比较的分量必须是 相同的属性组,并 ...

最新文章

  1. gdb InnoDB Redundant Row Format
  2. SpringBoot+thymeleaf实现文件下载(已实践,全流程)
  3. Linux Shell——函数的使用
  4. 7-113 堆栈操作合法性 (20 分)
  5. Oracle 学习笔记二 Create table
  6. netfilter数据流图 | 转
  7. python decorator. decorator_decorator在Python中的作用
  8. [转载]android debug工具集(挺全的)
  9. linux加载dl580网卡驱动,HP DL580 G7 服务器在LINUX5 下的集成网卡怎么安装?_电脑_天涯问答_天涯社区...
  10. 基于Django框架的物联网空气质量监测系统的实现
  11. 论文阅读笔记|Deep Image Homography Estimation
  12. 基于Java的线上诊疗系统毕业设计源码1617411
  13. C#winform 控件鼠标落下变色,鼠标挪开恢复原色
  14. Elasticsearch:从搜索中获取选定的字段 fields
  15. 2020东三省数学建模A题
  16. ]播放电影文件背景音乐声音正常对白声音小的问题
  17. CRC16-ccitt-false 递归解析每一个号码段的值
  18. 基于深度强化学习的组合优化方法在工业应用中的实践
  19. 内网渗透(九)之内网信息收集-手动本地信息收集
  20. NVMe1.4 Admin Command 学习(3)-- fw commit sanitize

热门文章

  1. WKWebView 使用及注意点(keng)
  2. java中 int、char、long各占多少字节数
  3. GMap2 与 google.maps.Map 的区别
  4. 继承 封装 多态 (基础)描述性理解
  5. 10月18---10月20号第一周总结
  6. Electron主进程与渲染进程相互通信
  7. ios swiftui_ios swiftui中的本地化
  8. VS2010 调用的目标发生了异常
  9. illustrator cs5 for mac 官方简体中文版 破解
  10. 使用photoshop(ps)将图片的背景色变成透明