Я написал MapFunction для groupByKey в моем запросе Spark, проблема в том, что я изо всех сил пытаюсь найти правильный тип кодировщика, сигнатура метода в Scala:
def groupByKey[K](func: MapFunction[T, K], encoder: Encoder[K]): KeyValueGroupedDataset[K, T] =
groupByKey(func.call(_))(encoder)
Моя MapFunctionвыглядит так:
static class GroupFunctionTwoColumns implements MapFunction<Row, Product>
{
String one;
String two;
public GroupFunctionTwoColumns(String one, String two){
this.one = one;
this.two = two;
}
@Override
public Tuple2<String, String> call(Row row)
{
return Tuple2.apply(row.getAs(one), row.getAs(two));
}
}
Мой искровой запрос:
KeyValueGroupedDataset<Product, Row> ds1 = data.groupByKey(mapFunction, Encoders.tuple(Encoders.product(TypeTags.TypeTag.any())));
Второй аргумент, кодировщик, - это то, где компиляция идет не так, когда я перекомпилирую, я вижу:
Error:(89, 127) java: cannot find symbol
symbol: method Any()
location: interface scala.reflect.api.TypeTags.TypeTag
Любой намек?