当前位置: 首页 > 面试题库 >

如何在Hadoop MapReduce中将对象设置为Map输出的值?

尉迟龙光
2023-03-14
问题内容

在Hadoop MapReduce中,对于中间输出(由map()生成),我希望中间输出的值成为以下对象。

MyObject{
  date:Date
  balance:Double
}

我该怎么做。我应该创建自己的可写类吗?

我是MapReduce的新手。

谢谢。


问题答案:

您可以编写自定义类型,将其作为映射器值发出。但是无论您要发出什么值,都必须实现可写接口。您可以执行以下操作:

public class MyObj implements WritableComparable<MyObj>{

    private String date;
    private Double balance;

    public String getDate() { return date;}
    public Double getBalance() { return balance;}

    @Override
    public void readFields(DataInput in) throws IOException {

        //Define how you want to read the fields
        }
    @Override
    public void writeFields(DataOutput out) throws IOException {

        //Define how you want to write the fields
    }
        .......
        .......
        .......

}

另外,您可以使用Avro序列化框架。



 类似资料:
  • 问题内容: 我有一个对象,我想将它设置为任意时间(比如半夜),这样我可以使用的功能一致,而不用担心时间来检索数据 时 创建的对象。 我尝试使用和通过一些Objective-C方法修改其组件,如下所示: 上述方法的问题在于,您只能设置一个时间单位(),因此您只能精确地选择以下其中一项: 天 月 年 小时 分钟 秒 有没有办法同时设置小时,分钟和秒并保留日期(日/月/年)? 问题答案: 您的声明 上述

  • 问题内容: 我用Java 创建了一个对象。当我这样做时,它显示如下:。结果,我的Excel文件似乎减少了一天(27 feb变为26 feb,依此类推),我认为这一定是因为时间的缘故。如何将其设置为下午5:30? 问题答案: 另请参阅 乔达时间 日历文件

  • 我是骆驼的新手,我被困在一个似乎很简单的问题上。我需要解组交换中的2个XML,然后将相应的POJO传递给处理器。我在考虑是否可以取消整理一个xml,将其设置为一个属性作为交换,并对另一个xml重复相同的属性。最后,在处理器中,我将检索属性,并可以在处理器中执行所需的逻辑。我能够成功地解组XML的,并获得exchange.in.body中的最后一个POJO。但是有人能告诉我在exchange属性中设

  • 我正在尝试做一些清理方法。其中我有几个字段,我想调用它们各自的清理方法,然后将它们设置为NULL。 我将所有对象添加到ArrayList中,然后将其传递给该方法: 然而,这并不起作用,我的单元测试显示,在调用此方法后,对象不为null。 如何将列表中的所有对象设置为NULL?

  • 组件: 表单: 该函数更新一个JSON记录。例如,它用“fname”ng model更新“firstName:”条目。问题是,除非用户修改输入的值,否则ngModel被读取为null,即使已经存在< code > value = " { { current user . first name } } " 的值。 如何设置 ngModel 以从实际输入的值其值?

  • 问题内容: 我在另一个实现Parcelable的场所对象中有一个Location对象。我该如何在我的writeToParcel方法实现中正确序列化它?所以这是一些代码: 问题答案: 在这里,您有一个片段如何将可分割对象序列化为您自己的包裹。