искровой кодер для кортежа со списком - (Row, Array [Row]) - PullRequest
0 голосов
/ 03 ноября 2019

Мне нужен кодировщик, который работает с моей функцией карты, которая берет строку и возвращает кортеж строки и список строк. Что-то вроде Row => (Row, List[Row])

Для каждой строки функция карты запускает список проверок, генерирует список нарушений и возвращает кортеж исходной строки и список нарушений, сгенерированных для строки. Нарушения - это сами строки, но с другой схемой, чем входные строки.

Кодер для кортежа (Row, Row) можно создать и использовать следующим образом:

    import org.apache.spark.sql.catalyst.encoders.RowEncoder
    import org.apache.spark.sql.Encoders
    ...

    implicit val rowEncoder = RowEncoder(rowSchema)
    val encoder = Encoders.tuple(rowEncoder, rowEncoder)
    ...

    val results = df.map( row =>{
      validator(row)
    })(encoder)

Но как нам создать кодер для кортежа (Row, List[Row])?

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