awslabs / awslabs/python-deequ

Change message for isUnique method

Aperta
#153 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
dependencies enhancement feature request
Lingua principale
Jupyter Notebook
Stelle
826
Fork
158
Merge medio
9g 22h
PR unite (30g)
3

Descrizione

For the past day I have been using the Check methods and I have found that isUnique method when using strings is not clear when returning the message of error.

```python
from pydeequ.checks import *
from pydeequ.verification import *
import pydeequ
from pyspark.sql.types import DateType, FloatType, StringType, StructField, StructType, BooleanType
import datetime
from pyspark.sql import SparkSession, Row
from pyspark.sql import DataFrame as SparkDataFrame
from typing import Dict, List
import time

mock_orders =[
{
"date": datetime.date(2019, 12, 28),
"country_code": "FR",
"concept_id": "c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd",
"id": "bar",
"gtv": 27.0,
},
{
"date": datetime.date(2019, 12, 20),
"country_code": "UK",
"concept_id": "123e4567-e89b-12d3-a456-426655440000",
"id": "bar",
"gtv": 27.0,
},
]

orders_reference_mock = spark.createDataFrame(data = mock_orders)

check = Check(spark, CheckLevel.Warning, "Review Check")

checkResult = (VerificationSuite(spark)
.onData(orders_reference_mock)
.addCheck(
check
.isUnique("gtv")
.isUnique("id")
)
.run())

checkResult_df = VerificationResult.checkResultsAsDataFrame(spark, checkResult)

checkResult_df.collect()
```
The results is:
```shell
[Row(check='Review Check', check_level='Warning', check_status='Warning', constraint='UniquenessConstraint(Uniqueness(List(gtv),None))', constraint_status='Failure', constraint_message='Value: 0.0 does not meet the constraint requirement!'),
Row(check='Review Check', check_level='Warning', check_status='Warning', constraint='UniquenessConstraint(Uniqueness(List(id),None))', constraint_status='Failure', constraint_message='Value: 0.0 does not meet the constraint requirement!')]
```

The `constraint_message` is not clear and doesn't give any information. It happens in both cases if it is string or integer.

Is it possible to have a more clear message please? I am putting this as a feature instead of a bug

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dal punto di ingresso Check.isUnique e segui il modo in cui VerificationSuite.run produce i risultati per VerificationResult.checkResultsAsDataFrame. Riproduci gli esempi gtv e id, quindi identifica dove viene formato constraint_message. Il lavoro è completato quando i risultati di unicità falliti spiegano quale valore o colonna ha causato il fallimento, invece di riportare soltanto 0.0.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
data-engineering
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
52/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.