Создание PairedRDD из текстовых файлов в Spark - PullRequest
0 голосов
/ 02 сентября 2018

Я сомневаюсь, что Apache Spark использует Java-кодирование. я имею образец файла в виде простого текста, состоящий из пар, разделенных символом табуляции. Примерно так:

** example.txt
1   5
2   7
5   4
**

и я читал несколько книг в Интернете, и они предлагают этот код для создания pairedRDD , используя первый столбец строки в качестве ключа и второй столбец в качестве значения. Поэтому они используют Tuple2 (из Scala).

Но я не могу понять, почему во всех примерах, которые я вижу, создается кортеж, инициализирующий объект со значением в виде строки целом . Потому что ключом является только [0] функции x.split () [0] . и значение кажется целой линией.

Это правильно? или я должен заменить его на x.split () [1] (для значения)?

Код ниже - это то, что я нашел во многих примерах источников в Интернете.

PairFunction<String, String, String> keyData =   new PairFunction<String, String, String>() {

    public Tuple2<String, String> call(String x) {

    return new Tuple2(x.split(” “)[0], x);

}

1 Ответ

0 голосов
/ 03 сентября 2018

Это всего лишь пример. Вы можете вернуть x [1] или x. Я не знаю точного контекста, но я видел этот стиль примера здесь в прошлом, насколько я помню.

Итак, ваш выбор, нет правильного или неправильного. Для меня я бы предположил, что x [1], но в равной степени x [0] можно рассматривать как ключ к строке.

Урок здесь: вы можете сделать оба. Оттуда вы можете, например, уменьшить (ByKey) или groupByKey . Вот что может сделать PairedRDD.

...