有人能说出在Hadoop中将BytesWritable类型转换为InputStream的最佳方法(在地图阶段)吗?我有适当的方法使用InputStream类型,我想在我的MR程序中使用它。
谢谢!
答案 0 :(得分:2)
在下面的代码中,您可以看到字节数组如何转换为输入流。现在要获取字节数组,可以使用BytesWritable get bytes 方法获取字节数组。获取字节数组后,您可以在mapper中使用上面的代码逻辑来获取输入流。我希望能够回答您的查询。所以我认为这可能是我建议的最佳方法之一。
您好我认为您可以查看以下代码: -
public class ByteArrToInputStream {
public static void main(String a[]){
String str = "converting to input stream";
byte[] content = str.getBytes();
int size = content.length;
InputStream is = null;
byte[] b = new byte[size];
try {
is = new ByteArrayInputStream(content);
is.read(b);
System.out.println("Data Recovered: "+new String(b));
} catch (IOException e) {
e.printStackTrace();
} finally {
try{
if(is != null) is.close();
} catch (Exception ex){
}
}
}
}