问题描述
我有一个特殊的情况要用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 (将#修改为@)