Не удается разрешить метод split (java.lang.String) при использовании лямбда-выражения - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь разбить массив строк с помощью лямбда-выражения.Это, однако, говорит мне, что метод split не может быть разрешен.Я делаю это, чтобы разобрать Java Spark RDD типа String для удвоения.

JavaRDD parsedData = data.map(s -> {
                String[] sarray = s.split(" ");
                double[] values = new double[sarray.length];
                for (int i = 0; i < sarray.length; i++) {
                    values[i] = Double.parseDouble(sarray[i]);
                }
                return Vectors.dense(values);
            });
            parsedData.cache();

1 Ответ

0 голосов
/ 09 июля 2019

Если, как сказано в комментарии, данные имеют тип Stream<Object>, этот код должен выполнить работу:

JavaRDD parsedData = data.map( o -> o.toString() )
    .map( s -> 
    {
        String[] sarray = s.split( " " );
        double[] values = new double [sarray.length];
        for( int i = 0; i < sarray.length; i++ ) 
        {
            values[i] = Double.parseDouble( sarray[i] );
        }
        return Vectors.dense( values );
    });
    parsedData.cache();
...