Skip to content

[Quality Evaluator] FileNotFoundError in waitForDriverRules: Missing JSON File for Rules Processing

When trigger the Quality profiling, there's an error in the log file regarding the User Rules for a E-Redes dataset (attached to the issue).

Additionally, not all KPIs are computed for all columns. There are some columns without quality values, examples: Power Connection-In/Awaiting Confirmation [MVA] (Last Quarter), Hosting capacity HV [MVA] (Last Quarter).

User Rules error:

172.20.0.107 - - [12/Feb/2025:07:12:36 +0000] "POST /evaluate-data HTTP/1.1" 500 265 "-" "python-requests/2.31.0"
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    | [2025-02-12 07:12:47,492] ERROR in app: Exception on /get-user-rules/string_RNT Connection-Bus bar 60kV (Forecast) [GET]
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    | Traceback (most recent call last):
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1511, in wsgi_app
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     response = self.full_dispatch_request()
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 919, in full_dispatch_request
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     rv = self.handle_user_exception(e)
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     rv = self.dispatch_request()
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |          ^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 902, in dispatch_request
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/app/evaluator_middleware.py", line 294, in endpoint_with_string_input
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     profileResult = waitForDriverRules(rules_dataset_id, spark_master_ip, subID, rules_dataset_id)
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |   File "/app/evaluator_middleware.py", line 253, in waitForDriverRules
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |     with open(f"/app/spark_jobs/data/{ds_id}_received_rules.json", 'r') as file:
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
datamite-demo_quality-evaluator.1.rm1nbxe4ltkm@datamite-quality    | FileNotFoundError: [Errno 2] No such file or directory: '/app/spark_jobs/data/string_RNT Connection-Bus bar 60kV (Forecast)_received_rules.json'

Dataset used to test:

E-REDES-SubstationCapacity-DS_.csv

/cc @jpla

Edited by Antoni Gimeno