Как проанализировать Map <string, string> из HDFS с форматом хранения RCFile, используя mapreduce? - PullRequest
0 голосов
/ 04 января 2019

В улье есть один столбец с типом Map<string,string>. Я хочу проанализировать информацию о значении ключа карты из hdfs, используя mapreduce. Функциональная карта выглядит следующим образом:

void map(LongWritable key, BytesRefArrayWritable value, Context context) {
    Text text = new Text();
    // this is the map column
    BytesRefWritable m  = value.get(1);
    text.set(m.getData(), m.getStart(), m.getLength())
    context.write(text, NullWritable.get())
}

Затем я читаю из выходного файла и обнаруживаю, что ключ-значение анализируется следующим образом: key1:value1key2:value2...
который я не могу разобрать пару ключ-значение без разделителя.
Итак, как разобрать Map<string,string> из hdfs?

1 Ответ

0 голосов
/ 13 марта 2019

Хорошо, я сам отвечу на этот вопрос.

В hdfs пары ключ-значение на карте или элементы в массиве разделяются на \ 002 . И разделитель между ключом и значением равен \ 003 . В соответствии с этим мы можем проанализировать все элементы в hdfs.

...