我在传智播客当分校长生涯的总结:参演了一部精彩的电影

本文作者回忆了在传智播客广州分校的经历,当时团队规模小,仅两名全职员工,一名全职教师,面对挑战,如何共同运营多个班级的历程。
摘要由CSDN通过智能技术生成

(说明:本文为本人写在即将离开传智播客,重新创业之际的《告别传智,重新上路----近5年来的总结及未来5年的计划》一文中的部分内容,如果您对其它部分内容感兴趣,欢迎阅读全文,地址为:http://blog.csdn.net/easyjf/article/details/44256613)。

  初到广州,人生地不熟,当时的广州传智全职员工只有两名(有一名员工我过来几天后就离职了),全职老师就赵君老师一人,三个教室,最多时同时会有3个班上课。

  我到广州的前一天,刚好搬办公室,从岗顶搬到车陂,当时教室桌椅的组装、采购以及网络的布置等均没有专人负责,可谓 事事均需动手参与。印象比较深刻的是,由于新开班要增加课桌,刚开年不久很多厂里的工人没有上班,想要桌椅,需要自己来厂里面搬。我只好第二天找了一个货车司机,找不到搬运工,我就座着货车司机的车,开了近1个小时,到一个很偏远的家具加工厂,在现场比划好尺寸,工人现场拿木板赶货,花了4个多小时,20多张桌椅完成。我跟司机与工人一起把一张张桌椅从厂房抬出来再装上车,然后再拉回来。回来的时候时间已经过了17点,广州规定货车在17点至20点区间是不准进城,于是只好与司机一起在城外吃饭,休息了接近3小时,到20点后才把桌椅拉回校区。卸货,搬进教室,抓了几个在上晚自习的同学下来帮忙,搞到晚上11点过钟才基本搞定。

   初到广州的一年,可谓是非常充实,经常是白天上完课,晚上就处理招生宣传、咨询等管理的问题,刚到广州的时候我住在体育西路࿰
好的,需要注意的是,MapReduce 一般用于大规模数据处理,对于小规模的数据集可能会有些繁琐。但是,为了练习 MapReduce 的使用,我们可以尝试使用它来处理电影库中的数据。 首先,你需要搭建 Hadoop 环境,并在 IDEA 中配置 Hadoop 的相关设置。然后,你可以按照以下步骤进行: 1. 创建一个 MapReduce 作业,在代码编辑界面中编写 Map 和 Reduce 函数。 2. 在 Map 函数中,读取电影和演员数据,将每个演员和他参演电影评分进行映射。 3. 在 Reduce 函数中,对每个演员的电影评分进行合并,并取出评分最高的5部电影。 4. 执行 MapReduce 作业并输出结果。 下面是一个简单的示例代码,你可以根据实际情况进行修改: ```java import java.io.IOException; import java.util.*; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; public class Main { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "top-5-movies"); job.setJarByClass(Main.class); job.setMapperClass(MapperClass.class); job.setReducerClass(ReducerClass.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(DoubleWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(DoubleWritable.class); job.setInputFormatClass(SequenceFileInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); SequenceFileInputFormat.addInputPath(job, new Path("/path/to/movie-data.seq")); TextOutputFormat.setOutputPath(job, new Path("/path/to/output")); System.exit(job.waitForCompletion(true) ? 0 : 1); } public static class MapperClass extends Mapper<Text, Text, Text, DoubleWritable> { private final Text actorName = new Text(); private final DoubleWritable rating = new DoubleWritable(); public void map(Text key, Text value, Context context) throws IOException, InterruptedException { String[] parts = value.toString().split("\\t"); String movieTitle = parts[0]; double movieRating = Double.parseDouble(parts[1]); String[] actors = parts[2].split("\\|"); for (String actor : actors) { actorName.set(actor); rating.set(movieRating); context.write(actorName, rating); } } } public static class ReducerClass extends Reducer<Text, DoubleWritable, Text, DoubleWritable> { private final TreeMap<Double, String> topMovies = new TreeMap<>(); public void reduce(Text key, Iterable<DoubleWritable> values, Context context) throws IOException, InterruptedException { double totalRating = 0; int count = 0; for (DoubleWritable value : values) { totalRating += value.get(); count++; } if (count > 0) { double avgRating = totalRating / count; String actorName = key.toString(); String movieTitle = topMovies.get(avgRating); if (movieTitle == null || !movieTitle.equals(movieTitle)) { topMovies.put(avgRating, movieTitle); if (topMovies.size() > 5) { topMovies.remove(topMovies.firstKey()); } } } } public void cleanup(Context context) throws IOException, InterruptedException { for (Map.Entry<Double, String> entry : topMovies.descendingMap().entrySet()) { double rating = entry.getKey(); String movieTitle = entry.getValue(); context.write(new Text(movieTitle), new DoubleWritable(rating)); } } } } ``` 在代码中,你需要将 `/path/to/movie-data.seq` 修改为你的电影数据文件路径,以及 `/path/to/output` 修改为你的输出文件路径。 然后,执行代码,你就可以在输出文件中看到你的演员评分最高的5部电影了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值