由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - MapReduce 请教:key 能用pair value吗?比如
相关主题
想学学Hadoop,从wordcount开始简单map reduce mean median, 傻逼回答
请教可以在线练习 map reduce 的地方?map reduce word count
median of N^2 numbers across N machinesMapReduce的面试题
请教MapReduce怎么找medianApple 数据科学家面经
F家onsite面经从王垠的代码看似乎其没在正规公司呆过 (转载)
一道大数据题,求最优解。实现个hashmap要override哪些method?java
如何用hadoop 析取各种数据?谁会做>??????????????????????????????????????
mapreduce 初级问题,请各位大牛指点没人讨论热门帖子里的两道概率题?
相关话题的讨论汇总
话题: public话题: key话题: return话题: string
进入JobHunting版参与讨论
1 (共1页)
W***o
发帖数: 6519
1
我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
然后这个key所对应的value就是sum of the occurrences of theft in 2005.
请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢
p*****2
发帖数: 21240
2
才6G, mongodb就搞定了吧?
W***o
发帖数: 6519
3
坦白说是个distributed system的作业,规定必须用Hadoop解决,想问问像二爷您这样
的大牛这思路对不对
。谢谢您

【在 p*****2 的大作中提到】
: 才6G, mongodb就搞定了吧?
l*n
发帖数: 529
4
完全可以。

20
,

【在 W***o 的大作中提到】
: 我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
: 个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
: 我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
: 然后这个key所对应的value就是sum of the occurrences of theft in 2005.
: 请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢

l*******m
发帖数: 1096
5
laptop一分钟搞定

20

【在 W***o 的大作中提到】
: 我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
: 个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
: 我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
: 然后这个key所对应的value就是sum of the occurrences of theft in 2005.
: 请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢

p*****2
发帖数: 21240
6

能用Hive吗?

【在 W***o 的大作中提到】
: 坦白说是个distributed system的作业,规定必须用Hadoop解决,想问问像二爷您这样
: 的大牛这思路对不对
: 。谢谢您

b**********5
发帖数: 7881
7
唉, 我再来抱怨一下, IT真的是青春饭。 我以前的学校, 读书的时候,
mapreduce这个词, 听都没听说过, 然后工作里, 也从来没用过。 resume上, 还
不如一个大学生。。。
p*****2
发帖数: 21240
8
你这么做没啥问题。应该算是很基本的应用了。
p*****2
发帖数: 21240
9

我学校里binary search都没听说过,怎么算呀?

【在 b**********5 的大作中提到】
: 唉, 我再来抱怨一下, IT真的是青春饭。 我以前的学校, 读书的时候,
: mapreduce这个词, 听都没听说过, 然后工作里, 也从来没用过。 resume上, 还
: 不如一个大学生。。。

W***o
发帖数: 6519
10
好,谢谢。为了写这个作业,我是刚开始自学hadoop,请问哪里有用pair-value做key
的example吗?或者麻烦您或哪位给写一下基本的code?

【在 p*****2 的大作中提到】
: 你这么做没啥问题。应该算是很基本的应用了。
相关主题
一道大数据题,求最优解。简单map reduce mean median, 傻逼回答
如何用hadoop 析取各种数据?map reduce word count
mapreduce 初级问题,请各位大牛指点MapReduce的面试题
进入JobHunting版参与讨论
b**********5
发帖数: 7881
11
binary search is not a hot key word... and one can learn binary search with
3 min and says he's an expert at binary search....

【在 p*****2 的大作中提到】
:
: 我学校里binary search都没听说过,怎么算呀?

W***o
发帖数: 6519
12
求点播,求思路,谢谢

【在 l*******m 的大作中提到】
: laptop一分钟搞定
:
: 20

p*****2
发帖数: 21240
13

key
theft_2005就可以了

【在 W***o 的大作中提到】
: 好,谢谢。为了写这个作业,我是刚开始自学hadoop,请问哪里有用pair-value做key
: 的example吗?或者麻烦您或哪位给写一下基本的code?

c*****a
发帖数: 808
14
Map Text做的key,
大概这样不行吗
mapper
context.write(new Text("theft_2005"), new LongWritable(val)));
l*******m
发帖数: 1096
15
用R, 或者python pandas. 8G RAM就够了

【在 W***o 的大作中提到】
: 求点播,求思路,谢谢
W***o
发帖数: 6519
16
谢谢,明天试试
只懂Java, R 和python不熟,都是现用现搜

【在 p*****2 的大作中提到】
:
: key
: theft_2005就可以了

j**w
发帖数: 382
17
Yes, in Hadoop, as long as a class implements WritableComparable, it can
serve as keys for Map/Reduce.
http://hadoop.apache.org/docs/r1.1.1/api/org/apache/hadoop/io/W
U R Welcome

20
,

【在 W***o 的大作中提到】
: 我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
: 个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
: 我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
: 然后这个key所对应的value就是sum of the occurrences of theft in 2005.
: 请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢

l*n
发帖数: 529
18
http://codingjunkie.net/secondary-sort/
http://vangjee.wordpress.com/2012/03/20/secondary-sorting-aka-s
你已经找对方向了。

key

【在 W***o 的大作中提到】
: 好,谢谢。为了写这个作业,我是刚开始自学hadoop,请问哪里有用pair-value做key
: 的example吗?或者麻烦您或哪位给写一下基本的code?

l*n
发帖数: 529
19
其实map reduce也一样啊,也是能3分钟学会的。但是就跟binary search有无数变种、
应用一样,map reduce也是变化多就是了。

with

【在 b**********5 的大作中提到】
: binary search is not a hot key word... and one can learn binary search with
: 3 min and says he's an expert at binary search....

W***o
发帖数: 6519
20
再请教一下大家:
下面是我的mapper code:
public class CrimeMapper extends Mapper IntWritable>
{
protected static final int DATE_INDEX = 2;
protected static final int CRIME_TYPE_INDEX = 5; // column index
protected static final int YEAR_INDEX = 17; // column index

private static final Log _log = LogFactory.getLog(CrimeMapper.class);
private static final IntWritable ONE = new IntWritable(1);

@Override
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException {
String[] tokens = value.toString().split(",");

String crimeType = tokens[CRIME_TYPE_INDEX].trim();
int year = Integer.parseInt(tokens[YEAR_INDEX].trim());
CrimeTypeKey theKey = new CrimeTypeKey(crimeType, year); // this is
for creating a new composite key
context.write(theKey, ONE);
_log.debug(theKey.toString() + " => " + ONE.toString());
}
}
} catch (Exception e) {
}
}
大家看看这个行吗?还有,hadoop/mapreduce 里的这个map() method里的参数Text
value,这个就是parse CSV来的一个line/row的String? 我再用.split分开行不行?有
没有更高效的parsing 方法?


【在 l*n 的大作中提到】
: 其实map reduce也一样啊,也是能3分钟学会的。但是就跟binary search有无数变种、
: 应用一样,map reduce也是变化多就是了。
:
: with

相关主题
Apple 数据科学家面经谁会做>??????????????????????????????????????
从王垠的代码看似乎其没在正规公司呆过 (转载)没人讨论热门帖子里的两道概率题?
实现个hashmap要override哪些method?javaT家店面
进入JobHunting版参与讨论
W***o
发帖数: 6519
21
这个是我CrimeTypeKey的class,生成composite key object:
public class CrimeTypeKey implements Writable, WritableComparable<
CrimeTypeKey>
{
private Text key = new Text();
private IntWritable year = new IntWritable();

public CrimeTypeKey() { }

public CrimeTypeKey(String k, int y)
{
key.set(k);
year.set(y);
}

public static CrimeTypeKey read(DataInput in) throws IOException
{
CrimeTypeKey keytp = new CrimeTypeKey();
keytp.readFields(in);
return keytp;
}

public void write(DataOutput out) throws IOException
{
key.write(out);
year.write(out);
}

public void readFields(DataInput in) throws IOException
{
year.readFields(in);
key.readFields(in);
}

public int compareTo(CrimeTypeKey that)
{
int cmp = this.key.compareTo(that.getKey());

if (cmp == 0) cmp = that.getYear().compareTo(this.year);

return cmp;
}

@Override
public boolean equals(Object y)
{
if (y == this) return true;
if (y.getClass() != this.getClass()) return false;
if (y == null) return false;

CrimeTypeKey that = (CrimeTypeKey) y;

if (!this.key.equals(that.key)) return false;
if (this.year != that.year) return false;

return true;
}

public Text getKey()
{
return key;
}

public IntWritable getYear()
{
return year;
}

public void setKey(String k)
{
key.set(k);
}

public void setYear(int y)
{
year.set(y);
}

@Override
public int hashCode()
{
int result = year != null ? year.hashCode() : 0;
result = 31 * result + (year != null ? year.hashCode() : 0);
return result;
}

@Override
public String toString()
{
return (new StringBuilder())
.append('{')
.append(key)
.append(',')
.append(year)
.append('}')
.toString();
}


}

【在 W***o 的大作中提到】
: 再请教一下大家:
: 下面是我的mapper code:
: public class CrimeMapper extends Mapper: IntWritable>
: {
: protected static final int DATE_INDEX = 2;
: protected static final int CRIME_TYPE_INDEX = 5; // column index
: protected static final int YEAR_INDEX = 17; // column index
:
: private static final Log _log = LogFactory.getLog(CrimeMapper.class);

l*n
发帖数: 529
22
csv要么用apache的csv库,要么就直接regexp吧。

【在 W***o 的大作中提到】
: 再请教一下大家:
: 下面是我的mapper code:
: public class CrimeMapper extends Mapper: IntWritable>
: {
: protected static final int DATE_INDEX = 2;
: protected static final int CRIME_TYPE_INDEX = 5; // column index
: protected static final int YEAR_INDEX = 17; // column index
:
: private static final Log _log = LogFactory.getLog(CrimeMapper.class);

W***o
发帖数: 6519
23
谢谢帮忙,收到了您写的code,但是有一点疑问,关于regex
private final static Pattern patt = Pattern
.compile("^([^,]+,){2}\d{2}/\d{2}/(\d{4})([^,]+,){3}([^,]+)"
);
Matcher m = patt.matcher(value.toString());
String year = m.group(2);
String crime = m.group(4);
这里面的正则表达是逐行分解CSV吗?里面的2和4,还有3是什么意思呢?谢谢

【在 l*n 的大作中提到】
: csv要么用apache的csv库,要么就直接regexp吧。
s*****m
发帖数: 8094
24
key不是按自己的喜好爱咋玩咋玩的么?这有啥好问的啊?

20
,

【在 W***o 的大作中提到】
: 我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
: 个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
: 我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
: 然后这个key所对应的value就是sum of the occurrences of theft in 2005.
: 请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢

s*****m
发帖数: 8094
25
MR好是好玩的东西,物所为青春饭。那些个啦啦嘻嘻的ui/ux的鸡巴才是青春饭呢。无
聊+不稳定。

【在 b**********5 的大作中提到】
: 唉, 我再来抱怨一下, IT真的是青春饭。 我以前的学校, 读书的时候,
: mapreduce这个词, 听都没听说过, 然后工作里, 也从来没用过。 resume上, 还
: 不如一个大学生。。。

s*****m
发帖数: 8094
26
严重怀疑lz是女汉子

【在 p*****2 的大作中提到】
:
: key
: theft_2005就可以了

s*****m
发帖数: 8094
27
java正是啰嗦

【在 W***o 的大作中提到】
: 再请教一下大家:
: 下面是我的mapper code:
: public class CrimeMapper extends Mapper: IntWritable>
: {
: protected static final int DATE_INDEX = 2;
: protected static final int CRIME_TYPE_INDEX = 5; // column index
: protected static final int YEAR_INDEX = 17; // column index
:
: private static final Log _log = LogFactory.getLog(CrimeMapper.class);

g*********e
发帖数: 14401
28

一分钟肯定不够

【在 l*******m 的大作中提到】
: laptop一分钟搞定
:
: 20

t*********h
发帖数: 941
29
mapreduce里的value你可以放任意值
不过你这6GB 虽便用什么语言都能瞬时搞定 无需mapreduce

20
,

【在 W***o 的大作中提到】
: 我在分析一个犯罪数据,从2001年到2013年的,有大概6GB, CSV格式。里面大概有20
: 个columns,但是我只对其中几栏需要分析。比如我想分析每种犯罪在每年的数量,所以
: 我想能否用这样一个key: , 也就是犯罪类型和年份这个pair作为key,
: 然后这个key所对应的value就是sum of the occurrences of theft in 2005.
: 请教一下大侠这种是否可行?有没有更好的方法?谢谢,10个包子感谢

r*******n
发帖数: 3020
30
人家说了这是作业,是为了学用hadoop

【在 t*********h 的大作中提到】
: mapreduce里的value你可以放任意值
: 不过你这6GB 虽便用什么语言都能瞬时搞定 无需mapreduce
:
: 20
: ,

1 (共1页)
进入JobHunting版参与讨论
相关主题
没人讨论热门帖子里的两道概率题?F家onsite面经
T家店面一道大数据题,求最优解。
in what case O(n*2) is better than O(n).如何用hadoop 析取各种数据?
电话面试一个design问题,看看怎么做mapreduce 初级问题,请各位大牛指点
想学学Hadoop,从wordcount开始简单map reduce mean median, 傻逼回答
请教可以在线练习 map reduce 的地方?map reduce word count
median of N^2 numbers across N machinesMapReduce的面试题
请教MapReduce怎么找medianApple 数据科学家面经
相关话题的讨论汇总
话题: public话题: key话题: return话题: string