public static String serialize(@NonNull final SinkStat sinkStat) { return MapUtil.serializeMap(sinkStat.stats); }
/** * This method will also be used by HoodieSink to retrieve and store metadata information. * It returns {@link HashMap<String, String>} with hoodie metadata information to be saved into commit file. * It returns {@link HashMap} instead of {@link Map} because hoodie needs it that way. Checkout * {@link HoodieWriteClient#commit(String, JavaRDD, java.util.Optional)} for more info. */ public HashMap<String, String> getMetadataInfo() { final HashMap<String, String> map = new HashMap<>(); map.put(HOODIE_METADATA_KEY, MapUtil.serializeMap(this.metadataMap)); return map; }
public void persist() { final Map<String, String> stats = new HashMap<>(); if (!this.currentStat.isEmpty()) { this.sinkStatQ.add(this.currentStat); } while (this.sinkStatQ.size() > MAX_HISTORY_SIZE) { this.sinkStatQ.poll(); } for (int i = 0; !this.sinkStatQ.isEmpty(); i++) { stats.put(Integer.toString(i), SinkStat.serialize(this.sinkStatQ.poll())); } this.metadataManager.set(getMetakey(), new StringValue(MapUtil.serializeMap(stats))); }
@Test public void testSerDeserMap() { final Map<String, String> map = new HashMap<>(); final int mapEntries = 10; for (int i = 0; i < mapEntries; i++) { map.put("prefixKey" + i + MapUtil.KEY_VALUE_SEPARATOR + MapUtil.KEYS_SEPARATOR + "suffix", "prefixValue" + i + MapUtil.KEY_VALUE_SEPARATOR + MapUtil.KEYS_SEPARATOR + "suffix"); } Assert.assertEquals(map.entrySet(), MapUtil.deserializeMap(MapUtil.serializeMap(map)).entrySet()); } }