BytesWritable使用

原创 2015年11月18日 17:30:44

BytesWritable不能作为mapreduce中的key或者value,与ByteWritable不同。

1,BytesWritable.tobyte(),将ByteWritable类型的数据转换为十六进制对,并以空格分开;

2,BytesWritable.set(byte[] newData,int offset,int length);//将值设置为给定的字节范围的副本

3,BytesWritable.copyBytes()//获得对象的byte[]类型全部数据

4,BytesWritable.getBytes()

main(){BytesWritable tt =new BytesWritable();
byte t[] = new byte[]{'t','a','g','u'};
tt.set(t, 0, t.length);
System.out.print(tt);}

main(){BytesWritable tt =new BytesWritable();
byte t[] = new byte[]{'t','a','g','u'};
tt.set(t, 0, t.length);
System.out.print(tt.toString());
}

两个输出的结果都为74 61 67 75,是十六进制的流字节,并且用空格隔开,即经过tostring()之后并没有将十进制的数据转换为BytesWritable所对应的字母。

main(){BytesWritable tt =new BytesWritable();
byte t[] = new byte[]{'t','a','g','u'};
tt.set(t,
n,t.length);//(n!=0)
System.out.print(tt);}

error:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.hadoop.io.BytesWritable.set(BytesWritable.java:172)
at cug.TestOrdinary.main(TestOrdinary.java:13)

报错原因是byte[]数组越界,将其改为tt.set(t,n,t.length-n);即可以输出第t位的所有byte数。

Hbase数据解析mapreduce过程及遇到的问题

本次介绍的是将hbase中存的数据,用mapreduce解析。 一,hbase中的数据结构: 二,分析map过程: 因为这里是对hbase中的表进行解析,所以map必须是继承Tabl...
  • young_so_nice
  • young_so_nice
  • 2016年05月18日 19:44
  • 929

基于Spark的用户分析系统

每天有大量的用户通过浏览器、手机app、TV访问优酷土豆网站,在优酷土豆上观看视频,并且可以对视频进行评论、顶踩、收藏、转发。我们可以通过用户的行为分析用户的偏好,给用户打上各种各样的标签,比如性别、...
  • ytbigdata
  • ytbigdata
  • 2015年07月30日 18:58
  • 4740

Hadoop使用ByteWritable时的一个注意事项

今天使用ByteWritable时候遇到了问题,浪费了好多时间,最后通过查看ByteWritable的源代码才解决这个问题。分享一下,希望能帮助别人节约点时间。 自己写了一个类继承了RecordRea...
  • luoleicn
  • luoleicn
  • 2010年07月05日 19:17
  • 5698

BytesWritable 存储问题

BytesWritable 存储字节数组的下标问题
  • xiewenbo
  • xiewenbo
  • 2014年05月12日 16:27
  • 981

scala spark hbase 操作案例

scala spark hbase 操作案例
  • ldds_520
  • ldds_520
  • 2016年07月08日 13:46
  • 4701

spark1.4 读取hbase 0.96 报错 java.io.NotSerializableException: org.apache.hadoop.hbase.io.ImmutableBytes

spark接hbase读取数据: val sc = new SparkContext(sparkConf) val conf = HBaseConfiguration.create(...
  • Rosen_Luo
  • Rosen_Luo
  • 2015年07月14日 10:30
  • 2259

MapReduce中使用BytesWritable类型时要注意

在MR程序中出现错误,数据读取的内容和原文件不一致,经过定位是因为使用BytesWritable类型导致的。 原因见:http://dongxicheng.org/mapreduce-nextge...
  • xuchuanyin
  • xuchuanyin
  • 2014年03月10日 11:44
  • 773

hadoop深入研究:(十一)——序列化与Writable实现

转载请写明来源地址:所有源码在github上,https://github.com/lastsweetop/styhadoop简介在hadoop中,Writable的实现类是个庞大的家族,我们在这里简...
  • lastsweetop
  • lastsweetop
  • 2013年07月17日 12:03
  • 15347

Scalding入门——很Spark的MapReduce流计算框架

Scalding是对Cascading框架的Scala封装,或者更确切地说是一种函数式封装。看到Cascading的时候你可能会觉得这么麻烦的东西有必要学吗?但是再看看Scalding就会发现,这好像...
  • duh2so4
  • duh2so4
  • 2015年12月23日 20:52
  • 761

Spark算子[18]:saveAsTextFile、saveAsObjectFile 源码实例详解

1、saveAsTextFile将此RDD保存为一个压缩文本文件,使用元素的字符串表示形式。第一个参数:Path为保存的路径; 第二个参数:codec为压缩编码格式;从源码中可以看到,saveAsT...
  • leen0304
  • leen0304
  • 2017年12月19日 12:26
  • 117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BytesWritable使用
举报原因:
原因补充:

(最多只允许输入30个字)