如何在 Hadoop 中序列化 Java 对象?

2024-01-20

对象应该实现Writable接口以便在 Hadoop 中传输时序列化。采取卢森ScoreDoc以类为例:

public class ScoreDoc implements java.io.Serializable {

  /** The score of this document for the query. */
  public float score;

  /** Expert: A hit document's number.
   * @see Searcher#doc(int) */
  public int doc;

  /** Only set by {@link TopDocs#merge} */
  public int shardIndex;

  /** Constructs a ScoreDoc. */
  public ScoreDoc(int doc, float score) {
    this(doc, score, -1);
  }

  /** Constructs a ScoreDoc. */
  public ScoreDoc(int doc, float score, int shardIndex) {
    this.doc = doc;
    this.score = score;
    this.shardIndex = shardIndex;
  }

  // A convenience method for debugging.
  @Override
  public String toString() {
    return "doc=" + doc + " score=" + score + " shardIndex=" + shardIndex;
  }
}

我应该如何序列化它Writable界面?之间有什么联系Writable and java.io.serializable界面?


我认为篡改内置的 Lucene 类并不是一个好主意。相反,拥有您自己的类,该类可以包含 ScoreDoc 类型的字段,并在接口中实现 Hadoop 可写。它会是这样的:

public class MyScoreDoc implements Writable  {      

  private ScoreDoc sd;

  public void write(DataOutput out) throws IOException {
      String [] splits = sd.toString().split(" ");

      // get the score value from the string
      Float score = Float.parseFloat((splits[0].split("="))[1]);

      // do the same for doc and shardIndex fields
      // ....    

      out.writeInt(score);
      out.writeInt(doc);
      out.writeInt(shardIndex);
  }

  public void readFields(DataInput in) throws IOException {
      float score = in.readInt();
      int doc = in.readInt();
      int shardIndex = in.readInt();

      sd = new ScoreDoc (score, doc, shardIndex);
  }

  //String toString()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Hadoop 中序列化 Java 对象? 的相关文章

  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • java.lang.Class: 在 java 程序中初始化 log4j 属性文件时出错

    我正在尝试使用 log4j 运行独立的 java 程序 但在调试时收到以下消息 控制台上没有 log4j 相关日志 log Logger 1343 java lang Class ERROR in 18b4aac2 有人可以建议这里出了什么
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • Apache Commons CLI:替代已弃用的 OptionBuilder?

    IntelliJ 显示此示例代码中不推荐使用 OptionBuilderhttp commons apache org proper commons cli usage html http commons apache org proper
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐

  • 使用 nghandsontable 访问 Handsontable 方法/属性

    我在用着ngHandson表 https github com handsontable ngHandsontable角度指令手动表 http handsontable com 我成功地显示了数据 但我正在努力访问修改后的行 以便将数据发送
  • 将对象转换为 类型

    我正在实现一个类的 List 接口 该类将数据存储在
  • iOS 自定义地图、地理位置、地图绘制等

    下一张图片取自 www Trimaps com 我希望这里允许使用图片 如果不允许 请告诉我 我会立即删除 这些图像完美地解释了我想要实现的目标 我拥有所需的所有数据 所需区域 4 个角的纬度 经度 以十进制值表示 来自 Google 地图
  • Clojure:在嵌套哈希图中搜索 val 并返回包含该 val 的键序列的函数

    假设我们有一个包含嵌套数据结构的集合 def coll a aa b d dd e f h hh i ii g gg c cc 我想创建一个函数 在嵌套结构中的任何位置搜索 val 并返回包含该 val 的键序列 search parent
  • 使用 Bootstrap ScrollSpy 将 div 折叠到固定的侧边栏

    我将此代码作为页面的布局 span9 div 包含应应用滚动间谍的部分 每个部分都是一组包含实际内容的可折叠 div span3 div 是固定的侧边栏 必须使用滚动间谍突出显示正确的项目 div class span3 module si
  • iOS 配置文件在 6 天后过期

    我是 iOS 开发新手 因为我目前只为 Android 开发 我遇到了一个问题 我一直在寻找可能的解决方案 我想做一个个人 iOS 应用程序 比如个人笔记应用程序或个人提醒应用程序等 我成功了 唯一的问题是配置文件仅持续 6 天 我认为 并
  • iPhone 5屏幕尺寸VS CSS媒体查询[重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 5 CSS 媒体查询 https stackoverflow com questions 12539697 iphone 5 css media query iPhone 5 技术规格规
  • 如何生成一个随机数,然后将其显示在屏幕上?

    好吧 我对 Android 相当陌生 但我已经设法自学了基础知识 我正在制作一个应用程序 您按下一个按钮 就会打开一个新屏幕 它会显示一个随机生成的数字 唯一的问题是我不知道如何生成并显示随机数 我已经在网络上搜索了很长时间 只找到了很少的
  • UITextView 偏移文本的方式与 UILabel 不同

    我在用UILabel and UI文本视图并且它们以不同的方式呈现文本 看起来UI文本视图将文本偏移 4 下面是一个例子 其中顶部是UILabel下面是UI文本视图 他们都使用相同的字体 这里有两个例子 一个是自定义的OpenSans字体和
  • 在 iOS16 中以编程方式推送 NavigationLink

    在以前的 iOS 版本中 我以编程方式推送了一个 NavigationLink NavigationLink isActive searched destination SearchView originalSearchPhrase sea
  • 是否可以设置 html5 音频标签的样式?

    我还没有找到任何关于如何做到这一点的资源 像改变播放器颜色这样简单的事情就很好了 是的 您可以隐藏内置浏览器 UI 通过删除controls属性来自audio 而是构建您自己的界面并使用 Javascript 控制播放 source htt
  • Angular 如何根据路线更改导航菜单标题

    我正在使用 Angular 4 在当前项目中开发仪表板布局 当用户在应用程序的不同部分之间导航时 我需要更新导航菜单标题标题以反映应用程序的当前部分 例如 当用户访问设置时 页面标题 应更改为 设置 该项目基于 net core 2 Ang
  • 突变残基和位置的数字编码

    我正在编写一个 python 程序 它必须计算突变残基和位置的数字编码一组字符串 这些字符串是蛋白质序列 这些序列存储在 fasta 格式文件中 每个蛋白质序列用逗号分隔 不同蛋白质的序列长度可能不同 在此我试图找到以下位置和序列 变异了
  • wordpress 在functions.php第5行中的非对象上调用成员函数add_section()

    嘿 我对 php 和 WordPress 开发有点陌生 我只是在尝试 WordPress 的工作原理以及主题的工作原理 现在我已经尝试多次查找此内容但没有帮助 总是有一些不同的东西 对那些人有用的东西 对我不起作用 这是代码
  • Android Compose 创建摇动动画

    我正在尝试在 Jetpack Compose 中制作形状的晃动动画 我想在用户输入无效的 Pin 码时使用此动画来显示错误 但我能找到的只是滑入 滑出动画和一些缩放动画 我有什么想法可以做到这一点吗 Update 在 Thracian 回答
  • 混合 Threepenny-Gui 和 StateT

    我有一个关于 Threepenny Gui 与 StateT 交互的问题 考虑这个玩具程序 每次单击按钮时 都会在列表中添加一个 Hi 项目 import Control Monad import Control Monad State i
  • 如何在 Azure 移动应用程序中实现自定义身份验证

    在Azure Mobile Apps的最新更新中 终于添加了对自定义身份验证的支持 参考 https azure microsoft com en us blog azure mobile apps november 2015 update
  • Socialauth - 您可以在重定向中使用相同的会话吗?

    我正在尝试使用社会认证 http code google com p socialauth wiki GettingStarted 使用 google facebook 等登录 我假设这里是 google 并询问其工作原理 我使用的是没有
  • 如何防止 Swagger-ui 中的 xml-wrapper 元素

    我使用的是 swagger ui 版本 2 2 8 我们现有的 API 可以生成 application json 以及 application xml 对于 json 中的单个记录结果 它会生成 person id 23 name Joh
  • 如何在 Hadoop 中序列化 Java 对象?

    对象应该实现Writable接口以便在 Hadoop 中传输时序列化 采取卢森ScoreDoc以类为例 public class ScoreDoc implements java io Serializable The score of t