z*c 发帖数: 63 | 1 题目就是经典的wordcount,给一个string array,让统计每个词的出现次数,并按出
现次数多少排序打印出。
如{“a”, "a", "b", "c"} 就打印
a 2
b 1
c 1
不过要求使用一种定义的新语言来写,该语言中的data structure仅包括array,
hashmap。且array和hashmap都是immutable的,也就是不能直接往hashmap里插数,只
能重新创建hashmap在原有的基础上加一个数。
我第一个思路是用hashmap存string和其出现次数。感觉难处有三:一是连把array过一
遍的for loop都不好写,因为该语言中无变量,连i++也没法用,二是hashmap在loop里
创建新的,属于局部变量,下一个loop里貌似就没法用到了 三是 如何sort结果也还没
想出来
第二个思路就是用mapreduce,该语言中包括map和reduce的方法,举的例子中map对一
个integer的array整体加减乘除一个常数得到一个新的array,reducer可以对一个
integer的数组进行sum或者两两相乘得到一个数作为结果... 阅读全帖 |
|
A******g 发帖数: 612 | 2 http://wiki.apache.org/hadoop/WordCount
这个程序的逻辑是看明白了,神奇的是在main里好像从来就没指定哪个是key,哪个是
value,就给了个输入输出文件名
这个map function
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException
还有reduce function是怎么知道那个是key 那个是value?
请大牛说说? |
|
A******g 发帖数: 612 | 3 http://wiki.apache.org/hadoop/WordCount
这个程序的逻辑是看明白了,神奇的是在main里好像从来就没指定哪个是key,哪个是
value,就给了个输入输出文件名
这个map function
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException
还有reduce function是怎么知道那个是key 那个是value?
请大牛说说? |
|
n**********s 发帖数: 9 | 4 看看你漏了什么
public class Solution {
public ArrayList fullJustify(String[] words, int L) {
ArrayList result=new ArrayList();
ArrayList currentLine=new ArrayList();
int i=0;
while(i
currentLine=new ArrayList();
int len=0;
int wordLength=0;
int wordCount=0;
do {
len+=words[i].length()+1;
wordLength+=words[i].lengt... 阅读全帖 |
|
发帖数: 1 | 5 初学java和编程,想请大家指点指点下边这段code有什么办法可以写得更好?
这个方法输入是一个word (String),然后想找到word里有几个音节,规则如下:
1.a,o,u,e,i,y都算元音
2.如果两个或以上元音连续,则只算一个音节
3.如果e是词的最后一个字母,而此外这个词没有别的音节,那这个e不算音节
4.不能用regex,得用loop
int numSyllables(String word)
{
char[] wordarray = word.toCharArray();
int wordcount = 0;
char prev = 0;
for (int i = 0; i < wordarray.length; i++) {
char cur = wordarray[i];
if (i > 0) prev = wordarray[i-... 阅读全帖 |
|
s***o 发帖数: 2191 | 6 只用loop大概也就这样了。按我的习惯改一下的话
// not verified
char[] wordarray = word.toCharArray();
int wordcount = 0;
boolean isPreviousVowel = false;
for (int i = 0; i < wordarray.length; i++) {
char cur = wordarray[i];
if (cur == 'e' && i == wordarray.length - 1 && !isPreviousVowel)
{
return wordcount == 0? 0 : wordcount +1;
}
if ("aoeuiyAOEUIY".contains("" + cur)) {
if (!isPreviousVowel) {
... 阅读全帖 |
|
s*i 发帖数: 388 | 7 【 以下文字转载自 Programming 讨论区 】
发信人: sci (ence), 信区: Programming
标 题: hadoop java 里面的SomeClass.class 是什么意思?
发信站: BBS 未名空间站 (Sat Feb 12 23:52:24 2011, 美东)
刚开始学习hadoop,看到如下代码
JobConf conf = new JobConf(WordCount.class);
查了下doc,定义如下:
JobConf(Class exampleClass)
Construct a map/reduce job configuration.
这种 WordCount.class 的函数参数究竟是传了什么进去 JobConf 的ctor?
是这个WordCount的binary ? 还是一个instance?还是String? |
|
s*i 发帖数: 388 | 8 刚开始学习hadoop,看到如下代码
JobConf conf = new JobConf(WordCount.class);
查了下doc,定义如下:
JobConf(Class exampleClass)
Construct a map/reduce job configuration.
这种 WordCount.class 的函数参数究竟是传了什么进去 JobConf 的ctor?
是这个WordCount的binary ? 还是一个instance?还是String? |
|
x******a 发帖数: 6336 | 9 是不是第二个while是错的,请问怎么改?
#include
#include
#include |
|
b******y 发帖数: 660 | 10 一门户网站的电面
用hadoop做wordcount,输入是一个很大的文件,#distinct term小于100,最后的结果
不写到HDFS,要print到console。
mapper就跟wordcount例子一样啦。我说用1个reducer,用LOG.info 将count print到
console,他说这个可能只print在reducer的console,而这个reducer在哪个node无法确
定。
他提示到在mapper用counter,不过没有什么头绪。希望各位指点一下。 |
|
b******y 发帖数: 660 | 11 一门户网站的电面
用hadoop做wordcount,输入是一个很大的文件,#distinct term小于100,最后的结果
不写到HDFS,要print到console。
mapper就跟wordcount例子一样啦。我说用1个reducer,用LOG.info 将count print到
console,他说这个可能只print在reducer的console,而这个reducer在哪个node无法确
定。
他提示到在mapper用counter,不过没有什么头绪。希望各位指点一下。 |
|
s******n 发帖数: 226 | 12 把所有4 letter长的单词建立trie 每个node加上wordCount 和 prefixCount, 每一层
选的时候以 wordCount+prefixCount为标准,选五个最大的 |
|
c***z 发帖数: 6348 | 13 Got asked several times in interviews.
lines = LOAD 'sample.txt' AS (line:chararray);
words = FOREACH lines GENERATE FLATTEN(TOKENIZE(line)) as word;
grouped = GROUP words BY word;
wordcount = FOREACH grouped GENERATE group, COUNT(words);
DUMP wordcount; |
|
j******a 发帖数: 55 | 14
如果并行化grep,等价于mapreduce中的哪一步。我不是很sure,我觉得grep都返回结
果了,应该算
是两个都沾上吧。我类比一下wordcount,觉得把每行并行化,算是map,把结果匹配出
来返回是
reduce。有没有行家解释一下? |
|
d********w 发帖数: 363 | 15 职位:performance engineer
1) 3-tier web application, analyze possible bottleneck
2) calculate power(int x, int y)
3) sorted array,find intersection,
4) jvm heap management, gc mechanism, block, c++/java difference
5) merge sorted array, how to optimize in large scale.
6) given a client and server, server transfer a large data file e.g. (10M)
, traffic is full in network, how to improve the performance. i.e. response
time reduce to half of original version.
7) Wordcount how to improve performance,... 阅读全帖 |
|
d********w 发帖数: 363 | 16 随着大数据的盛行,Hadoop也流行起来。我面过很多hadoop相关的公司,包括一线公司
(hadoop就是公司主要产品)如cloudera, hortonworks, mapr, teradata, greenplum,
二线的(使用hadoop):apple, expedia,comScore. 当然还有很多公司facebook,
twitter, baidu, 感觉这块还是机会挺多的,我就把我知道的一些给大家分享一下。
书籍和paper
: 里面内容非常好,既有高屋建瓴,又有微观把握,
比如mapreduce各个子阶段,经常问道join在里面也有代码实现,
google的三量马车,GFS, MapReduce, BigTable
入门:
知道MapReduce大致流程,map, shuffle, reduce
知道combiner, partition作用,设置compression
搭建hadoop集群,master/slave 都运行那些服务
HDFS,replica如何定位
版本0.20.2->0.20.203->... 阅读全帖 |
|
d********w 发帖数: 363 | 17 随着大数据的盛行,Hadoop也流行起来。我面过很多hadoop相关的公司,包括一线公司
(hadoop就是公司主要产品)如cloudera, hortonworks, mapr, teradata, greenplum,
二线的(使用hadoop):apple, expedia,comScore. 当然还有很多公司facebook,
twitter, baidu, 感觉这块还是机会挺多的,我就把我知道的一些给大家分享一下。
书籍和paper
: 里面内容非常好,既有高屋建瓴,又有微观把握,
比如mapreduce各个子阶段,经常问道join在里面也有代码实现,
google的三量马车,GFS, MapReduce, BigTable
入门:
知道MapReduce大致流程,map, shuffle, reduce
知道combiner, partition作用,设置compression
搭建hadoop集群,master/slave 都运行那些服务
HDFS,replica如何定位
版本0.20.2->0.20.203->... 阅读全帖 |
|
d********w 发帖数: 363 | 18 coding:
- JOIN: nested join, hash join, sort-merge join
- Number: Fibonacci, prime,随机取文件某一行
- String: strstr, wordcount
- Tree: height, lca, balance tree
- Heap: 查找最大的k个数
- DP: 最大连续子串和
- array: find a key in rotated array, 去除重复字符
- linkedlist: 是否有环,插入结点,删除重复结点
- 递归回溯:变化很多,这方面需要大量练习
知识性:
多线程,mutex/semaphore
java GC
C++ virtual, smart pointer
regex使用
数据库:知道btree, 索引
search engine: 倒排表,拉链,稀疏索引,空间向量模型,tf*idf,
large scale data: hash, consistent hash, bloom filter, bitmap, 外排序,
partition
分布式:CAP理论,gos... 阅读全帖 |
|
d********w 发帖数: 363 | 19 coding:
- JOIN: nested join, hash join, sort-merge join
- Number: Fibonacci, prime,随机取文件某一行
- String: strstr, wordcount
- Tree: height, lca, balance tree
- Heap: 查找最大的k个数
- DP: 最大连续子串和
- array: find a key in rotated array, 去除重复字符
- linkedlist: 是否有环,插入结点,删除重复结点
- 递归回溯:变化很多,这方面需要大量练习
知识性:
多线程,mutex/semaphore
java GC
C++ virtual, smart pointer
regex使用
数据库:知道btree, 索引
search engine: 倒排表,拉链,稀疏索引,空间向量模型,tf*idf,
large scale data: hash, consistent hash, bloom filter, bitmap, 外排序,
partition
分布式:CAP理论,gos... 阅读全帖 |
|
d********w 发帖数: 363 | 20 为啥那这本书来准备面试呢?如果你没有hadoop的经验,也不用看这些的。
如果你的职位要求里面确实有hadoop,可以去检查或者搜索一下以下问题
1. mapreduce的几个阶段
2. pig, hive的大致设计和比较,(结合sql写法)
3. wordcount, terasort的mapreduce程序写法
4. hadoop在不同节点启动了那些服务
5. secondary sort, partition如何用
6. 什么是nosql,ACID跟BASE比较
7. hadoop的不足和最新改进(next generation)
8. HDFS的如何做到scalability和高可靠性
这些基本问题掌握后,可以找找资源,比如你提到那边书,GFS/MapReduce/BigTable
paper, hadoop summit 2012大会上的slides,youtube或者cloudera上面的hadoop视频
海量数据处理倒是经常会问到,比如如何在多台机器上找中位数,n个数找最大k个数,
搜索如何做索引,以前有个帖子专门总结过。 |
|
B********t 发帖数: 147 | 21 这个行吗
int wordCount(string s)
{
int i = 0, count = 0;
while(i < s.size())
{
while(i < s.size() && s[i] == ' ')
i++;
if(s[i] != ' ' && s[i] != '\0')
count++;
while(i+1 < s.size() && s[i+1] != ' ')
i++;
i++;
}
return count;
} |
|
c********t 发帖数: 5706 | 22 好吧
int wordCount(String s) {
int count = 0, n = s.length();
for (int i = 0; i < n; i++) {
if (s.charAt(i) != ' ') {
count++;
while (i < n && s.charAt(i++) != ' ');
i--;
}
}
return count;
} |
|
X*K 发帖数: 87 | 23 我不懂瞎猜的
public static class Map extends Mapper
>
就是说这个mapper把input pair
LongWritable, Text (行id,行文本)
map到output pair
Text, IntWritable(词,数字1)
而map function
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException
的前两个参数就是input pari,Context应该就是hadoop句柄,然后
context.write(word, one);
就是输出output pair.
reducer应该也类似 |
|
A******g 发帖数: 612 | 24 有道理,所以map的input就是以input file的行读的
IntWritable |
|
X*K 发帖数: 87 | 25 我不懂瞎猜的
public static class Map extends Mapper
>
就是说这个mapper把input pair
LongWritable, Text (行id,行文本)
map到output pair
Text, IntWritable(词,数字1)
而map function
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException
的前两个参数就是input pari,Context应该就是hadoop句柄,然后
context.write(word, one);
就是输出output pair.
reducer应该也类似 |
|
A******g 发帖数: 612 | 26 有道理,所以map的input就是以input file的行读的
IntWritable |
|
f*********1 发帖数: 75 | 27 大家看这个行不行?
由2^k 得到启发
建一个大表 每行表示一个ad, 每列表示frequent query string 的一个词,表的值表
示单词是否出现在某一个ad里。
wordcount new... york ...department ...store ... sale.
ad1 5 1 1 1 1 1
ad2 1 0 1 0 0 1
ad3 4 1 1 1 1 0
...
adn 1 1 0 0 0 0
建表需要O(N)
查询需要先生成query string的所有subsets, 这一步需要2^k, 然后与(&)query
string match对应列vector,选与值为1的ads。最后再用第一列的word cou... 阅读全帖 |
|
f*********1 发帖数: 75 | 28 大家看这个行不行?
由2^k 得到启发
建一个大表 每行表示一个ad, 每列表示frequent query string 的一个词,表的值表
示单词是否出现在某一个ad里。
wordcount new... york ...department ...store ... sale.
ad1 5 1 1 1 1 1
ad2 1 0 1 0 0 1
ad3 4 1 1 1 1 0
...
adn 1 1 0 0 0 0
建表需要O(N)
查询需要先生成query string的所有subsets, 这一步需要2^k, 然后与(&)query
string match对应列vector,选与值为1的ads。最后再用第一列的word cou... 阅读全帖 |
|
y******u 发帖数: 804 | 29 最近在上coursera的课。看到一个mapreduce的伪实现,参考一下。
in python
MapReduce.py
import json
class MapReduce:
def __init__(self):
self.intermediate = {}
self.result = []
def emit_intermediate(self, key, value):
self.intermediate.setdefault(key, [])
self.intermediate[key].append(value)
def emit(self, value):
self.result.append(value)
def execute(self, data, mapper, reducer):
for line in data:
record = json.loads(line)
mapper(rec... 阅读全帖 |
|
y******u 发帖数: 804 | 30 如果想连连mapreduce算法,下面python script能模拟
MapReduce.py
import json
class MapReduce:
def __init__(self):
self.intermediate = {}
self.result = []
def emit_intermediate(self, key, value):
self.intermediate.setdefault(key, [])
self.intermediate[key].append(value)
def emit(self, value):
self.result.append(value)
def execute(self, data, mapper, reducer):
for line in data:
record = json.loads(line)
mapper(record)
... 阅读全帖 |
|
s******e 发帖数: 128 | 31 经典hadoop例子也就是wordcount之类的一个数据。很好理解mapper和reduce 该写些什
么。 但实际上经常要从log文件中析取所有的各种数据:举个例子:要从一套log文件
中析取average height break down into gender, top 10 sites break down into
phone types, top word break down into adults/kids...。
我想不出这些情况mapper和reduce 该怎么写? |
|
l*n 发帖数: 529 | 32 你这些都是counting & summing problems吧,只不过是写mapper/reducer的时候key/
value可能不是单一的field。比如你的mean height over gender,就是gender vs.
height_ONE,height用来summing,ONE用来counting。mapreduce的灵活性不单只是一个
wordcount那么狭隘的。 |
|
|
m*****k 发帖数: 731 | 34 some stupid idea,
throwing a brick waiting for jade , hehe
suppose the alphabet only has {a,b,c,d}
create map: char->array
a: [1,0,0,0]
b: [0,1,0,0]
c: [0,0,1,0]
d: [0,0,0,1]
and init result as [0, 0, 0, 0]
then just use the mapreduce way to add corresponding
array each time seeing a char? |
|
j*d 发帖数: 96 | 35 LZ 你确定不允许用整形变量?
如果允许,可以用递归解,recursiveFunc ( String A[], int i). |
|
|
z*c 发帖数: 63 | 37
很有创意。。。 不过我举这个例子比较片面,实际上是general的string array哈 |
|
z*c 发帖数: 63 | 38
已经定义的都是immutable的,不过我貌似也没看明白允许用整形变量的话递归咋弄? |
|
|
|
p*****2 发帖数: 21240 | 41
学学haskell就明白了。
FP里没有循环,只有递归 |
|
|
p*****2 发帖数: 21240 | 43
val xs = List('a', 'a', 'b', 'c');
val res = xs.groupBy(identity).map(i=>(i._1, i._2.size)).toList.sortBy(_
._2)(implicitly[Ordering[Int]].reverse) |
|
t**r 发帖数: 3428 | 44 Scala怎么写
(_
★ 发自iPhone App: ChineseWeb 8.7 |
|
|
|
s****r 发帖数: 3 | 47 LZ这两天要面一个公司SE,但manager说这职位侧重在data analysis上,所以不但会面
我programming,还会面一些data processing的问题。
LZ没有统计的知识,做过一些hadoop的projects。猜想data processing的问题,难道
是要写个wordcount的mapreduce?
有没有了解的同学呢 |
|
|
s******c 发帖数: 1920 | 49 这得是招team lead的题目了吧。
第一题你说用zk来管hbase的master来实现HA,但single point of failure在hdfs nn
这里说不通啊。hdfs也有zk来做nn的HA的啊。
第二题就是 mapreduce的wordcount 变形啊,不用hbase的
partition
point
namenode
data |
|
o******y 发帖数: 4377 | 50 呵呵,偶知道你在米国混的
去 Proz.com 或 ATA 随便搜搜在美国本土的translator,就知道市场价了
(咱们中文的算便宜的)
不过就像我前面说的,翻译公司都要求用 Trados,并用 TM leverage wordcount
当然,高级的文学翻译啊这些可能会有所不同 |
|