如何将数组中的String追加到mapreduce中的Text()

时间:2016-09-15 09:31:12

标签: java hadoop mapreduce

我在数组中有字符串。我需要根据索引将数组的所有元素附加到mapreduce中的Text()。我需要在Text()

中将值附加为字符串

例如:

 String s = "12,23";
 String[] array = s.split(",");
 Text t1 = new Text();
 for(int i=0;i<array.length;i++) {
     t1.append(array[i]);
 }

2 个答案:

答案 0 :(得分:0)

您需要使用此方法:append(byte[] utf8, int start, int len)Javadoc

所以你的代码看起来像:

t1.append(array[i].getBytes(), 0, array[i].getBytes().length);

作为快速单元测试:

@Test
public void textAppendTest() {

    String s = "12,23";
    String[] array = s.split(",");
    Text t1 = new Text();
    for(int i=0;i<array.length;i++){
        t1.append(array[i].getBytes(), 0, array[i].getBytes().length);
    }
    System.out.println(t1); // prints 1223
}

答案 1 :(得分:0)

你可以这样做,而不需要一个分裂字符串数组:

String str = "12,23";
String newStr = str.replace("," , ""); // or replace with any character or string you want between those numbers
Text text = new Text(newStr);