如何在Hadoop中将图像转换为Avro格式?

时间:2015-05-20 02:22:11

标签: avro

我想将* .jpg文件转换为avro格式,反之亦然。 具体要求是:

  1. 将所有* .jpg图片转换为avro格式。
  2. 处理图像并通过avro MR作业删除重复项。
  3. 我该怎么做?

1 个答案:

答案 0 :(得分:0)

在这种情况下,使用Avro绝对不会购买任何东西。但如果你坚持下去,这就是你需要做的事情。

  1. 使用FileInputStream阅读图片,或者如果您想在群集中进行转换,请定义自己的'button' Selector.match = { 'id' : new RegExp('^#(' + identifier + ')' ), 'class' : new RegExp('^\\.(' + identifier + ')' ), 'tag' : new RegExp('^(' + identifier + '|[*])' ), }; if (Selector.match['id'].exec(this.selector)) { console.log('ID'); this.result.push(document.getElementById(this.selector)); } else if (Selector.match['id'].exec(this.selector)) { this.result.push(document.getElementsByClassName(this.selector)); } else if (Selector.match['tag'].exec(this.selector)) { this.result.push(document.getElementsByTagName(this.selector)); } (我不知道您可以使用任何InputFormat开箱即用)。
  2. 然后将原始字节存储为Avro记录,该记录只不过是
  3. InputFormat
    1. 然后使用字节作为键(或使用FileInputFormat,因为它将使用字段进行比较),shuffle将对重复项进行分组,然后您可以使用reducer过滤掉重复项。此方法将识别与重复相似的图像。即使更改文件上的元数据也会改变字节并导致其不匹配。
    2. 总的来说,我认为这是一个不明智的要求。您可以考虑使用类似AvroKey的数据来处理数据。