Написание кодировщика для моего запроса Java Spark-SQL groupByKey - PullRequest
0 голосов
/ 18 октября 2019

Я написал 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

Любой намек?

...