0

豚形式のマップ文字列表現(例: "['k1'#'v1'、'k2'#'v2']")をMapオブジェクトに変換する必要があります。自分で実装するよりも、豚の実装を使用したいです。反対の変換のメソッドを見つけました:DataType.mapToString(Map m)

4

1 に答える 1

0

あなたが本当にPigに固執しているなら、あなたは次のことを思いつくかもしれません:

...
import org.apache.pig.builtin.Utf8StorageConverter;
...
public class Test {

    public static void main(String[] args) throws IOException {

        String mapStr = "[k1#v1,k2#v2]";

        Utf8StorageConverter converter = new Utf8StorageConverter();
        Map<String, Object> map = converter.bytesToMap(mapStr.getBytes());

        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " :: " + entry.getValue());
        }
    }
}

Pig v0.10.0を持っていると思います

于 2013-03-07T15:25:30.170 に答える