十二道MR习题 – 1 – 排序】的更多相关文章

题目: 一个文件,大小约为100G.文件的每一行都是一个数字,要求对文件中的所有数字进行排序. 对于这个题目,了解过Hadoop的同学可以笑而不语了.即使用spark实现也是非常简单的事情. 先说下如何用Hadoop实现.实际上也没什么好说的:Map任务逐行读入数字,而后在Reduce中输出就可以了,简单粗暴到令人发指. 看下代码好了: package com.zhyea.dev; import org.apache.hadoop.conf.Configuration; import org.a…
题目: 有一个很大的文件,这文件中的内容全部都是数字,要求尝试从这个文件中找出最大的10个数字. 分析: 看起来像是一个比较简单的问题.不用大数据框架的话,也能比较轻易的实现:就是逐个读取文件中的每个数字,放到一个大顶堆结构中:将大顶堆放满以后,每读取一个数字就将之和大顶堆中的最小值进行比较,如果其大于这个最小值的话,就将其放入堆中,并将堆中的最小值删除:这样读取到最后,堆中剩下来的内容就是top 10了. 用MapReduce实现的话也说不上困难:我们只使用Map任务读取文件,而reduce中…
题目: 需要将MR的执行结果保存到3个文件中,该怎么做. 又是一个送分题. 对于Hadoop的MapReduce来说只需要设置一下reduce任务的数量即可.MR的Job默认reduce数量是1,需要调用job的setNumReduceTasks()方法来调整reduce任务的数量. 对于spark来说,可以调用coalesce方法或repartition方法来调整分区的数量,这样也可以调整最终结果输出文件的数量.关于coalesce方法和分区的关系这里不展开了,随便搜搜就能找到了. #####…
题目 有两个文件A和B,两个文件中都有几百万行数字,现在需要找出A文件和B文件中数字集合的交集.并集.以及A对B的差集. 简单说一下思路: 这个问题关键在于key和value的设计.这里我将文件中的数字设置为key,将文件名称设置为value.这样在reduce阶段很容易就能找出A.B两个文件中数字的交并差集了. 并集就是reduce阶段能输出的全部记录:交集则需要做下过滤,即一个记录中的value需要同时有A.B两个文件的名称:差集则是文件名称集合中只包含A或B的记录. 看下用MapReduc…
Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对象后,我们可以根据Collection中的方法进行排序,查找,替换操作.而不用在东奔西走的利用什么各种排序算法.正则来实现了.在进行数组排序时,有时反而会因为参数问题而大费周折.例如,自己在利用快排进行数组排序时,当将参数(int [] a, 使用1来代替 Collections.frequency…
2427: C语言习题 整数排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 391  解决: 282 题目描述 用指向指针的指针的方法对n个整数排序并输出.要求将排序单独写成一个函数.整数和n在主函数中输入.最后在主函数中输出. 输入 n和n个整数 输出 排序后的整数 样例输入 5 4 3 2 1 5 样例输出 1 2 3 4 5 提示  主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() {     void sort(int **,int…
2426: C语言习题 字符串排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 262  解决: 164 题目描述 用指向指针的指针的方法对5个字符串排序并输出.要求将排序单独写成一个函数.字符串和n在主函数中输入.最后在主函数中输出. 输入 n和n个字符串 输出 排序后的字符串 样例输入 5 12345 123 abce abcde abcd 样例输出 123 12345 abcd abcde abce 提示 /* C代码 */ int main() {     void so…
2414: C语言习题 字符串排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 656  解决: 305 题目描述 输入n个字符串,将它们按字母由小到大的顺序排列并输出.编写三个函数实现,input 用于输出n个字符串,sortstr用于排序n个字符串,output 用于输出n个字符串. 输入 第一行 n 第二行到第n+1行,每行一个字符串 输出 排序后的字符串 样例输入 3 YTU ACM COM 样例输出 ACM COM YTU 提示 主函数已给定如下,提交时不需要包含下述主…
看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: /* global.c --- 使用外部变量 */ #include <stdio.h> ; //一个外部变量 void critic(void); int main(void) { extern int units; printf ("How many pounds to a firkin of butter?\n")…
[习题] 对此字典分别按照value 和key 如何排序? dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} In [38]: dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} ...: print(sorted(zip(dic1.values(),dic1.keys()))) #按value的值升序 ...: print(sor…