Как мне создать кодировщик типа List [Row] для создания набора данных [List [Row]] в spark? - PullRequest
0 голосов
/ 24 мая 2018

По сути, я выполняю 'groupbyKey' с последующим преобразованием 'mapGroups' на фрейме данных spark.'mapGroups' создаст набор данных [U], для которого требуется кодер типа 'U'.Я конвертирую каждую группу значений в тип List [Row], для этого мне нужно передать кодировщик.Я могу создать кодировщик типа 'Row' по его схеме, но не знаю, как создать кодировщик для типа данных 'List [Row]'.

import sqlContext.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.catalyst.encoders._
val groupedDataset = df.repartition($"_id")
                        .groupByKey(row => row.getAs[Long]("_id"))
                        .mapGroups((key,value) => value.toList)( ??? Here Encoder of List[Row] is Required ???)`

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать Seq с импортом spark.implicits._ Но вам не нужно реализовывать его, если вы используете этот вариант, вы можете использовать

df.groupBy("_id").agg(collect_list("the column you want to collect of values"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...