Как связать pyspark с Drools? - PullRequest
       7

Как связать pyspark с Drools?

0 голосов
/ 31 октября 2019

Я хочу соединить Drools с pyspark, чтобы создать SQL-запрос для применения бизнес-правил к фрейму данных. Пожалуйста, предложите, если какие-либо другие инструменты могут быть использованы для этого требования.

Существует несколько бизнес-правил, которые должны быть реализованы сразу на фрейме данных.

select a.id
,case when cast(appendix_id as int) = long_id then appendix_title end as Title
,case when cast(appendix_id as int) = long_id then medium_title end as medium_title
,case when cast(appendix_id as int) = long_id then short_title end as short_title 
from stg_data a

условия случая могут быть конфигурированы с использованиемСлюни

>   -- business rule:
>     1) if code is in both appendix O AND longult
>       - use the long title from appendix O file 
>       - use the medium title from medu
>       - use the short title from shortu
>     sample input
>     34 ABC - Appendix O file
>     34 CDE - Longult file
>     34 123 - Med file
>     34 567 - Shortfile
> 
>     sample output
>     Data Frame
>     Code Long Title Med Title Short Title
>     34     ABC         123        567


Input:
|  id|short_id|     short_title|long_id|     long_title|medium_id|  medium_title|appendix_id|appendix_title|EV_ID|EV_Long_title|EV_Short_title|EV_Medium_title|
+----+--------+----------------+-------+---------------+---------+--------------+-----------+--------------+-----+-------------+--------------+---------------+
| 148|     148| short title 148|    148| long title 148|      148| med title 148|       null|          null| null|         null|          null|           null|
| 463|     463| short title 463|    463| long title 463|      463| med title 463|       null|          null| null|         null|          null|           null|
| 471|     471| short title 471|    471| long title 471|      471| med title 471|       null|          null| null|         null|          null|           null|

output
+--------+---------------+--------------+----------------+-------------+
|CPT_CODE|     Long_Title|  Medium_Title|     Short_Title|Business_rule|
+--------+---------------+--------------+----------------+-------------+
|     148| long title 148| med title 148| short title 148|        Rule4|
|     463| long title 463| med title 463| short title 463|        Rule4|
|     471| long title 471| med title 471| short title 471|        Rule4|
...