小编tri*_*ggs的帖子

使用自定义可写入从Hadoop Map Reduce作业输出列表

我正在尝试通过更改hadoop给出的wordcount示例来创建一个简单的map reduce工作.

我正在尝试列出一个列表而不是一个单词的计数.wordcount示例给出以下输出

hello 2
world 2
Run Code Online (Sandbox Code Playgroud)

我试图将其作为列表输出,这将构成未来工作的基础

hello 1 1
world 1 1
Run Code Online (Sandbox Code Playgroud)

我认为我走在正确的轨道上,但我在编写清单时遇到了麻烦.而不是上述,我得到了

Hello   foo.MyArrayWritable@61250ff2
World   foo.MyArrayWritable@483a0ab1
Run Code Online (Sandbox Code Playgroud)

这是我的MyArrayWritable.我把一个sys放在了,write(DataOuptut arg0)但它从来没有输出任何东西所以我认为这个方法可能不会被调用,我不知道为什么.

class MyArrayWritable extends ArrayWritable{

public MyArrayWritable(Class<? extends Writable> valueClass, Writable[] values) {
    super(valueClass, values);
}
public MyArrayWritable(Class<? extends Writable> valueClass) {
    super(valueClass);
}

@Override
public IntWritable[] get() {
    return (IntWritable[]) super.get();
}

@Override
public void write(DataOutput arg0) throws IOException {
    for(IntWritable i : get()){
        i.write(arg0);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 添加更多源代码

public class WordCount {

public static …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce

13
推荐指数
1
解决办法
2万
查看次数

自定义ViewGroup中的视图未显示

我最近钻研了创建自定义ViewGroups并遇到了一个我无法弄清楚的问题.

我有2个ViewGroups - ViewManager和Article

ViewManager只是简单地列出了前一篇文章下面的文章(即像一个垂直的LinearLayout)

文章可以在图像中看到几个TextView和ImageView.创建单个文章并将其添加到ViewManager工作正常,一切都会显示,但是当我添加第二篇文章时,文章的内容都不可见.

说明未显示的第二个视图

那么为什么没有TextViews或ImageView出现(注意蓝色条是用onDraw()中的canvas.drawRect()绘制的.我还打印了(通过logcat)子视图的绑定值(即drawChild()中的getLeft()/ Top()/ Right()/ Bottom(),它们看起来都很好看

FIRST TextView
FIRST left 5 right 225 top 26 bottom 147
FIRST TextView
FIRST left 5 right 320 top 147 bottom 198
FIRST TextView
FIRST left 5 right 180 top 208 bottom 222
FIRST ImageView
FIRST left 225 right 315 top 34 bottom 129
SECOND TextView
SECOND left 10 right 53 top 238 bottom 257
SECOND TextView
SECOND left 5 right 325 top 257 bottom 349
SECOND TextView
SECOND left …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-layout viewgroup

7
推荐指数
1
解决办法
6891
查看次数

Android Looper.prepare()和AsyncTask

嗨,我有一些关于Looper.prepare()和AsyncTasks的问题.

在我的应用程序中,我有一个启动其他AsyncTasks的AsyncTask.我有2个AsyncTasks搜索和GetImage.GetImage任务在搜索任务中执行多次.它工作正常.

但是最近我实现了图像缓存,如下所述:http: //android-developers.blogspot.com/2010/07/multithreading-for-performance.html

实施此操作后,我开始出现间歇性崩溃

02-09 17:40:43.334:W/System.err(25652):java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序

我不知道应该在哪里打电话给prepare().这是代码的大致轮廓

Search extends AsyncTask{

    @Override
    protected void doInBackground(){
        ArrayList<Object> objs = getDataFromServer();
        ArrayList<View> views = new ArrayList<View>();
        for(Object o: objs){
            //multiple AsyncTasks may be started while creating views
            views.add(createView(o));
        }
        for(View v: views){
            publishProgess(v);
        }
   }
}

public View createView(Object o){

    //create a view
    ImageView iv = .....;
    ImageDownloader.getInstance().download(url,iv);
}
Run Code Online (Sandbox Code Playgroud)

ImageDownloader可以在上面的链接中看到,它是另一个下载图像的AsyncTask.它还包含一个Handler和Runnable,用于清除每次下载时重置的缓存.我确实对ImageDownloader进行了一次更改,我将其设为单例.

 public static ImageDownloader getInstance(){
    if(instance == null){
        //tried adding it here but it results in occasional
        //cannot create more than …
Run Code Online (Sandbox Code Playgroud)

multithreading android handler android-asynctask

2
推荐指数
1
解决办法
4301
查看次数