Java代码中Spark上的聚合函数

问题描述

我有一个特殊的情况要用Java代码处理spark,但我不知道这样做: 我想要具有分区PTF的最后一个FALSE标签(此处的记录在desc中按列的datendatedate排序)以及标签为TRUE之后的所有记录。 在sql中,它看起来像:

with full_query as (
select distinct t.portfolio,t.commandUId,max(t.isPartialrelaunch) over (partition by t.commandName,t.portfolio) as isPartialrelaunchPerPTF,(DENSE_RANK() over (partition by t.portfolio,t.commandUId) order by t.i2rIntegrationTime desc) as commandUIDRank
from varFumModel t)
)
select t.*,t.commandUId) order by t.i2rIntegrationTime desc) as commandUIDRank from varFumModel t 
where commandUIDRank <= nvl((select min(d.commandUIDRank) from full_query d where d.isPartialrelaunchPerPTF = false and d.portfolio = t.portfolio and d.commandUId = t.commandUId),10000)
  • Cas 1
+------+------------+-------+------+---------------+-----------------------+
|PTF1  | Position1  | TRUE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+-----------------------+

+------+------------+-------+------+---------------+-----------------------+
|PTF1  | Position1  | FALSE | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+-----------------------+

结果

+------+------------+-------+------+---------------+-----------------------+
|PTF1  | Position1  | TRUE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position1  | FALSE | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+-----------------------+
  • Cas 2
+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+------------------------+

结果

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+
  • Cas 3
+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+------------------------+

结果

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | FALSE  | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+
  • Cas 4
+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_0 | integrationdatetime_t0|
+------+------------+-------+------+---------------+------------------------+

结果

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_0 | integrationdatetime_t0|
+------+------------+-------+------+---------------+------------------------+
  • Cas 5
+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_0 | integrationdatetime_t0|
+------+------------+-------+------+---------------+------------------------+

+------+------------+-------+------+---------------+-------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_-1| integrationdatetime_t-1|
+------+------------+-------+------+---------------+-------------------------+

结果

+------+------------+-------+------+---------------+------------------------+
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position2  | TRUE   | CMD1 | COMMAND_UID_2 | integrationdatetime_t2|
|PTF1  | Position1  | TRUE   | CMD1 | COMMAND_UID_1 | integrationdatetime_t1|
|PTF1  | Position1  | FALSE  | CMD1 | COMMAND_UID_0 | integrationdatetime_t0|
+------+------------+-------+------+---------------+------------------------+

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)