Мой набор данных выглядит следующим образом, я хочу получить 1-ую строку, значение 1-го столбца (в данном случае A1)
+-------+---+--------------+----------+
|account|ccy|count(account)|sum_amount|
+-------+---+--------------+----------+
| A1|USD| 2| 500.24|
| A2|SGD| 1| 200.24|
| A2|USD| 1| 300.36|
+-------+---+--------------+----------+
Я могу сделать это следующим образом:
Dataset finalDS = dataset.groupBy("account", "ccy").
agg(count("account"), sum("amount").alias("sum_amount"))
.orderBy("account", "ccy");
Object[] items = (Object[])(finalDS.filter(functions.col("sum_amount")
.equalTo(300.36))
.collect());
String accountNo = (String)((GenericRowWithSchema)items[0]).get(0);
2 вопроса:
- Есть ли другой / более эффективный способ сделать это? Мне известно о
Dataframe/JavaRDD
запросах - Без явного преобразования
Object[]
происходит сбой времени компиляции, однако я бы подумал, что это неявное приведение. Почему ? Я подозреваю, что что-то связано с компиляцией scala.