Карта искры в ряд данных - PullRequest
       8

Карта искры в ряд данных

0 голосов
/ 27 апреля 2018

Я пытаюсь создать RDD с использованием набора данных, но не могу найти способ сопоставить каждую строку набора данных.

Dataset<POJO> df1 = session.read().parquet(tableName).as(Encoders.bean(POJO.class));

Используя следующий подход

    JavaRDD<List<Tuple3<Long, Integer, Double>>> tempDatas1 = df1.map(r -> new MapFunction<POJO, List<Tuple3<Long, Integer, Double>>>(){
        //@Override
        public List<Tuple3<Long, Integer, Double>> call(POJO row) throws Exception
        {

        // Get the sample property, remove leading and ending spaces and split it by comma
        // to get each sample individually
        List<Tuple2<String, Integer>> samples = zipWithIndex((row.getSamples().trim().split(",")));

        // Gets the unique identifier for that s.
        Long snp = row.getPos();

        // Calculates the hamming distance.
        return samples.stream().map(t -> {
            String alleles = t._1();
            Integer patient = t._2();

            List<String> values = Arrays.asList(alleles.split("\\|"));

            Double firstAllele = Double.parseDouble(values.get(0));
            Double secondAllele = Double.parseDouble(values.get(1));

            // Returns the initial S id, p id and the distance in form of Tuple.
            return new Tuple3<>(snp, patient, firstAllele + secondAllele);
        }).collect(Collectors.toList());
        }
    });

Получение cannot resolve method map(<lambda expression>) ошибки на map в df1.map(r ->.

1 Ответ

0 голосов
/ 30 апреля 2018

Пожалуйста, используйте df1.toJavaRDD () или df1.rdd () вместо прямой записи карты поверх набора данных. Лучше сначала преобразовать ваш набор данных в rdd, отобразить его и снова сохранить результат в rdd. Поскольку сопоставление набора данных не дает JavaRDD или JavaPairRDD в качестве результата преобразования без предварительного преобразования набора данных в rdd.

...