Я использую expectations
и Check
, чтобы определить, может ли столбец десятичного типа быть преобразован в тип int или long. Столбец можно безопасно преобразовать, если он содержит целые числа или десятичные дроби, где десятичная часть содержит только нули. Я проверяю это, используя функцию регулярного выражения rlike
, так как я не смог найти другого метода, использующего expectations
.
Вопрос в том, могу ли я сделать такую проверку для всех столбцов десятичного типа без явного перечисления имен столбцов? df.columns
еще не доступен, так как мы еще не внутри my_compute_function
.
from transforms.api import transform_df, Input, Output, Check
from transforms import expectations as E
@transform_df(
Output("ri.foundry.main.dataset.1e35801c-3d35-4e28-9945-006ec74c0fde"),
inp=Input(
"ri.foundry.main.dataset.79d9fa9c-4b61-488e-9a95-0db75fc39950",
checks=Check(
E.col('DSK').rlike('^(\d*(\.0+)?)|(0E-10)$'),
'Decimal col DSK can be converted to int/long.',
on_error='WARN'
)
),
)
def my_compute_function(inp):
return inp