由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 关于mapreduce一问
相关主题
问个Hadoop Word Count的简单问题能不能在hadoop中用open mpi?
java的内存管理真是气死我了转行做data warehouse的问个学习大数据的问题
big data怎么搞定商业报表?Flink Sparks Next Wave of Distributed Data Processing
是我的错觉么?我觉得google的三架马车其实没啥东西MapReduce 的思想是怎么发明的?
请问为什么现在big data的toolkit都是和java有紧密的关系?在Hadoop 2.7上如何实现 MapReduce Job Chaining?
mapreduce, hadoop还能火几年?hadoop job 速度提升
Hadoop运行时是不是用命令行执行的?Hadoop和Java有什么联系?大龄转行人跪求:如果在1个半月里学好PYTHON?在9月初要code
Intro to Hadoop and MapReduce @ ucadicy 有人学过么? 199块 (转载)big data,菜凉?
相关话题的讨论汇总
话题: map话题: fp话题: mapreduce话题: array话题: scala
进入Programming版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
刚看了一下google的paper,现在想知道这个map操作在FP里边应该怎么做呢?只考虑单
机的情况
这个map是把一个map映射到另一个map,相同的key会有不同的value,而且key value
pair的数目也跟input不一样。这东西可以用FP语言里的一个map函数搞定吗?我怎么感
觉scala一下子搞不定呢?
h***t
发帖数: 2540
2
你如果是个普通的程序员,就别管Map和Reduce函数的设计了,交给Hadoop就行了,你
管好High Level的就行了。

【在 p*****2 的大作中提到】
: 刚看了一下google的paper,现在想知道这个map操作在FP里边应该怎么做呢?只考虑单
: 机的情况
: 这个map是把一个map映射到另一个map,相同的key会有不同的value,而且key value
: pair的数目也跟input不一样。这东西可以用FP语言里的一个map函数搞定吗?我怎么感
: 觉scala一下子搞不定呢?

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

我是没想明白。map,reduce不是从FP来的吗?但是FP的map跟mapreduce的map是
equivalent的吗?

【在 h***t 的大作中提到】
: 你如果是个普通的程序员,就别管Map和Reduce函数的设计了,交给Hadoop就行了,你
: 管好High Level的就行了。

t****a
发帖数: 1212
4
相同key有不同value情况可以考虑成一个2级的广义表吧。比如求average的和
X (list
A 1, 2
B 3
C 4 5 6
)
(reduce + (map avg X))

【在 p*****2 的大作中提到】
: 刚看了一下google的paper,现在想知道这个map操作在FP里边应该怎么做呢?只考虑单
: 机的情况
: 这个map是把一个map映射到另一个map,相同的key会有不同的value,而且key value
: pair的数目也跟input不一样。这东西可以用FP语言里的一个map函数搞定吗?我怎么感
: 觉scala一下子搞不定呢?

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

没看明白。我的问题是在FP里面的map函数,跟mapreduce里边的map函数是等同的吗?
或者说FP里的map函数能完成mapreduce里的map函数吗?我看scala好像完成不了。你说
的这个意思是可以完成吗?

【在 t****a 的大作中提到】
: 相同key有不同value情况可以考虑成一个2级的广义表吧。比如求average的和
: X (list
: A 1, 2
: B 3
: C 4 5 6
: )
: (reduce + (map avg X))

B***i
发帖数: 724
p*****2
发帖数: 21240
7

能还是不能呀?

【在 B***i 的大作中提到】
: https://github.com/twitter/scalding/wiki/Getting-Started
A*******t
发帖数: 443
8
google mapreduce里面的map和reduce的想法是从fp里面来的
不过一般fp本身不会被编译到mapreduce的一个work上

【在 p*****2 的大作中提到】
:
: 能还是不能呀?

B***i
发帖数: 724
9
scalding 里就用map, flatMap 等等来 来实现 一般fp的mapping, , 用 groupby 来实
现 maping + reducing

【在 B***i 的大作中提到】
: https://github.com/twitter/scalding/wiki/Getting-Started
t****a
发帖数: 1212
10
我觉得是等同的。map做的事情就是将计算(函数)传递给数据。这和map reduce里的
概念一致。

【在 p*****2 的大作中提到】
:
: 能还是不能呀?

X*K
发帖数: 87
11
mapreduce里的map概念是从FP里面的map,但我觉得不是一回事,mapreduce里的map在c
++里是用函数指针,在java里是用strategy pattern,用scala的map应该也是可以的,
前提是用scala实现一个类似hadoop的framework,但感觉这样实现效率可能有问题。

【在 p*****2 的大作中提到】
:
: 能还是不能呀?

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

在c
如果不考虑distributed的话,只考虑single thread。
mapreduce里的map
输入:key/value , 输出: key/value (key 可以重复)
那么scala里就是Map了。
Map.map 这个函数可以输出另外一个Map,并且存在duplicate key吗?或者一个key对
应一个list也可以。我看了看document貌似不行呀。或者其他FP语言可以做到吗?
我主要是这个不太明白。

【在 X*K 的大作中提到】
: mapreduce里的map概念是从FP里面的map,但我觉得不是一回事,mapreduce里的map在c
: ++里是用函数指针,在java里是用strategy pattern,用scala的map应该也是可以的,
: 前提是用scala实现一个类似hadoop的framework,但感觉这样实现效率可能有问题。

X*K
发帖数: 87
13
偶觉得看具体map什么东西,可以通过几个map来实现,比如word count的map stage
scala> val inputLines = Array("This is the first line", "This is the second
line")
inputLines: Array[java.lang.String] = Array(This is the first line, This is
the second line)
scala> val mapResult = inputLines.map(x => x.split(" ").map(word => (word, 1
))).reduceLeft(_ ++ _)
mapResult: Array[(java.lang.String, Int)] = Array((This,1), (is,1), (the,1),
(first,1), (line,1), (This,1), (is,1), (the,1), (second,1), (line,1))
接下来reduce stage肯定是可以通过reduceLeft弄出来的。

【在 p*****2 的大作中提到】
:
: 在c
: 如果不考虑distributed的话,只考虑single thread。
: mapreduce里的map
: 输入:key/value , 输出: key/value (key 可以重复)
: 那么scala里就是Map了。
: Map.map 这个函数可以输出另外一个Map,并且存在duplicate key吗?或者一个key对
: 应一个list也可以。我看了看document貌似不行呀。或者其他FP语言可以做到吗?
: 我主要是这个不太明白。

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

second
is
1
),
不错。先记下。回头好好研究。所以一个map看来是搞不定的。

【在 X*K 的大作中提到】
: 偶觉得看具体map什么东西,可以通过几个map来实现,比如word count的map stage
: scala> val inputLines = Array("This is the first line", "This is the second
: line")
: inputLines: Array[java.lang.String] = Array(This is the first line, This is
: the second line)
: scala> val mapResult = inputLines.map(x => x.split(" ").map(word => (word, 1
: ))).reduceLeft(_ ++ _)
: mapResult: Array[(java.lang.String, Int)] = Array((This,1), (is,1), (the,1),
: (first,1), (line,1), (This,1), (is,1), (the,1), (second,1), (line,1))
: 接下来reduce stage肯定是可以通过reduceLeft弄出来的。

1 (共1页)
进入Programming版参与讨论
相关主题
big data,菜凉?请问为什么现在big data的toolkit都是和java有紧密的关系?
Google的那个mapreduce的paper感觉基本是看过这类paper里最简单的了mapreduce, hadoop还能火几年?
是否值得把业务逻辑做到Hbase coprocessor里面?Hadoop运行时是不是用命令行执行的?Hadoop和Java有什么联系?
aws EMR能设置一个mapper吗?Intro to Hadoop and MapReduce @ ucadicy 有人学过么? 199块 (转载)
问个Hadoop Word Count的简单问题能不能在hadoop中用open mpi?
java的内存管理真是气死我了转行做data warehouse的问个学习大数据的问题
big data怎么搞定商业报表?Flink Sparks Next Wave of Distributed Data Processing
是我的错觉么?我觉得google的三架马车其实没啥东西MapReduce 的思想是怎么发明的?
相关话题的讨论汇总
话题: map话题: fp话题: mapreduce话题: array话题: scala