如何为DS对创建<tuple2 <string,list <row =“” >>>类型的编码器

时间:2018-07-11 15:23:07

标签: java apache-spark apache-spark-dataset

Encoder<Tuple2<String,Row>> encoder = Encoders.tuple(Encoders.STRING(), RowEncoder.apply(arrayStruct));

final Dataset<Tuple2<String, List<Row>>> keyToEntityPair = df.map(
    (MapFunction<Row, Tuple2<String, List<Row>>>) row -> {
                            .
                            .
                            .
        return new Tuple2<String, List<Row>>(entityKey, keyToEntityList);
    }, encoder
)

最上面的是我尝试使用编码器的方法,但是我认为它不起作用,因为它需要一个行列表而不是一行。我收到的错误是关于地图的:

Cannot resolve method 'map(MapFunction<Row,Tuple2<List<Row>>>, Encoder<Tuple2<String,Row>> 

我正在尝试升级到spark 2.3,并使用DS和DF而不是RDD。预先感谢您的建议!

0 个答案:

没有答案