将BytesWritable类型转换为Hadoop中的InputStream

时间:2013-10-08 07:39:41

标签: hadoop mapreduce inputstream hdfs

有人能说出在Hadoop中将BytesWritable类型转换为InputStream的最佳方法(在地图阶段)吗?我有适当的方法使用InputStream类型,我想在我的MR程序中使用它。

谢谢!

1 个答案:

答案 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){

        }
    }

}

}