下面是我使用WritableComparator的代码段,但它不起作用
import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.io.WritableComparator; public class MovieComparator extends WritableComparator{ public MovieComparator(){ super(Movie.class); } @Override public int compare(WritableComparable o,WritableComparable o2){ System.out.println("in compare"); Movie m = (Movie)o; Movie m2 = (Movie)o2; System.out.println(m.compareTo(m2)); return m.movieId.compareTo(m2.movieId); } }
public class Movie implements WritableComparable { Text movieId; Text movieTitle; public Movie(Text movieId, Text movieTitle) { this.movieId = movieId; this.movieTitle = movieTitle; } public Movie(){ } public String getMovieId() { return movieId.toString(); } public void setMovieId(String movieId) { this.movieId = new Text(movieId); } public String getMovieTitle() { return movieTitle.toString(); } public void setMovieTitle(String movieTitle) { this.movieTitle = new Text(movieTitle); } @Override public void readFields(DataInput in) throws IOException { //movieId = in.read; movieId.readFields(in); movieTitle.readFields(in); } @Override public void write(DataOutput out) throws IOException { //out.writeUTF(movieId); //out.writeUTF(movieTitle); movieId.write(out); movieTitle.write(out); } @Override public int compareTo(Movie o) { // System.out.println("in compareTo"); int res=movieTitle.compareTo(o.movieTitle); return res; } @Override public int hashCode(){ return movieId.hashCode(); } @Override public boolean equals(Object o){ Movie m=(Movie)o; return movieId.equals(m.movieId); } @Override public String toString(){ return movieTitle.toString(); } } In driver class I am setting the comparator by below linejob.setSortComparatorClass(MovieComparator.class);14/09/08 14:17:03 WARN mapred.LocalJobRunner: job_local_0001 java.io.IOException: Spill failed at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:1029) at org.apache.hadoop.mapred.MapTask$NewOutputCollector.write(MapTask.java:691) at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80) at com.impetus.MovieMapper.map(MovieMapper.java:44) at com.impetus.MovieMapper.map(MovieMapper.java:1) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
我发现了一个问题,即不能使用super(movie.class),而必须使用super(movie.class,true)。通过发送true,WritableComparator将实例化对象,否则它将在compare方法中传递null
如何使用
将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>") 首先,文档被转换成Unicode,并且HTML的实例
基础运用 Redis::set('user:profile:' . $id, "Swoft"); $userDesc = Redis::get('user:profile:' . $id); 你可以通过 Redis:: 调用任何 Redis 命令。Swoft 使用魔术方法将命令传递给 Redis 服务端,因此只需传递 Redis 命令所需的参数即可。示例: Redis::set('name',
引入 WeUI.css文件 利用 vue init mpvue/mpvue-quickstart my-project 初始化一个 mpvue 项目,然后在 /src/main.js 中引入 weui.css 由于是在小程序中使用,于是就直接使用了 weiui-wxss 中的样式文件,官方提供的是 weui.wxss,因此手动转成了 weui.css,然后引入即可。 这里提供 weui.css 一
将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>") 首先,文档被转换成Unicode,并且HTML的实例
目录 简介 定义资源 主流框架的默认适配 抛出异常的方式定义资源 返回布尔值方式定义资源 注解方式定义资源 异步调用支持 规则的种类 流量控制规则 熔断降级规则 系统保护规则 访问控制规则 热点规则 查询修改规则 定制规则推送方式 其它 API 业务异常统计 Tracer 上下文工具类 ContextUtil 指标统计配置 规则生效的效果 判断限流降级异常 Dashboard 实时监控 简介 Se
英文原文:http://www.phpconcept.net/pclzip/user-guide/18 PKZIP 压缩包的内部表示方式 每个 PKZIP 压缩包都由一个 PclZip 对象表示。 当使用 PclZip 对象创建一个 PclZip 压缩包时,需绑定压缩包的名字。 此时,PclZip 不会检查压缩包,也不可读,甚至压缩包还不存在。 require_once('pclzip.lib.p
使用步骤 使用JustAuth总共分三步(这三步也适合于JustAuth支持的任何一个平台): 申请注册第三方平台的开发者账号 创建第三方平台的应用,获取配置信息(accessKey, secretKey, redirectUri) 使用该工具实现授权登陆 使用方式 引入依赖 <dependency> <groupId>me.zhyd.oauth</groupId> <artifa