标签: great-expectations

当只有一个错误时,远大期望期望列仅包含整数,所有行都会失败

我想使用Great Expectations包来验证 .csv 文件中的列仅包含整数。

我正在使用的文件在年龄列中只有整数,除了一行具有“”字符之外。这就是我希望期望能够捕捉到的。我还在文本编辑器中检查了 .csv 文件,并可以确认年龄列中的年龄未用引号引起来。

然而,100% 的数据都未能达到预期。我认为这是因为 pandas 正在读取作为对象类型(因此是字符串)的列,因为有一个不正确的行。我可以使用类似的方法对其进行预处理,.astype(int)因为它会在该行上失败。而包裹.astype(int)在一个try块中将完全违背对此寄予厚望的目的。

这是一个最小的工作示例:

好.csv:

age,name
34,Fred
22,Bob
54,Mary
Run Code Online (Sandbox Code Playgroud)

坏.csv:

age,name
34,Fred
`,Bob
54,Mary
Run Code Online (Sandbox Code Playgroud)

代码:

import great_expectations as ge

df = ge.read_csv("./good.csv");
my_df.expect_column_values_to_be_of_type('age','int')

df = ge.read_csv("./bad.csv");
my_df.expect_column_values_to_be_of_type('age','int')
Run Code Online (Sandbox Code Playgroud)

第一个案例返回

{'success': True,
 'result': {'element_count': 3,
  'missing_count': 0,
  'missing_percent': 0.0,
  'unexpected_count': 0,
  'unexpected_percent': 0.0,
  'unexpected_percent_nonmissing': 0.0,
  'partial_unexpected_list': []}}
Run Code Online (Sandbox Code Playgroud)

所以所有的年龄都是整数,并且每一行都成功。我预计第二种情况会失败,但仅限于第二行。但是它在所有行上都失败:

{'success': False,
 'result': {'element_count': 3,
  'missing_count': 0,
  'missing_percent': 0.0,
  'unexpected_count': 3,
  'unexpected_percent': 1.0,
  'unexpected_percent_nonmissing': 1.0,
  'partial_unexpected_list': ['34', '`', …
Run Code Online (Sandbox Code Playgroud)

python validation types pandas great-expectations

6
推荐指数
1
解决办法
7227
查看次数

如何解决巨大的期望“MetricResolutionError:无法编译 Column 对象,直到分配其“名称”。” 错误?

我正在尝试用远大的期望。
我想使用的功能是expect_compound_columns_to_be_unique. 这是代码(主代码 - 模板):

import datetime

import pandas as pd

import great_expectations as ge
import great_expectations.jupyter_ux
from great_expectations.core.batch import BatchRequest
from great_expectations.checkpoint import SimpleCheckpoint
from great_expectations.exceptions import DataContextError

context = ge.data_context.DataContext()

# Note that if you modify this batch request, you may save the new version as a .json file
#  to pass in later via the --batch-request option
batch_request = {'datasource_name': 'impala_okh', 'data_connector_name': 'default_inferred_data_connector_name', 'data_asset_name': 'okh.okh_forecast_prod', 'limit': 1000}


# Feel free to change the name of …
Run Code Online (Sandbox Code Playgroud)

python great-expectations

6
推荐指数
1
解决办法
546
查看次数

Great_Expectations Spark 3.2.1 中的条件期望与 DataBricks 中的 Pandas API

我们希望在具有条件期望的 DataBricks 中实现 Great_Expectations'。根据 GE 的文档https://docs.greatexpectations.io/docs/reference/expectations/conditional_expectations仅适用于 Pandas,默认情况下此参数必须设置为“pandas”,因此需要适当的语法。未来可能会实施其他引擎。

有谁知道它是否可以在与 Pandas API 集成的 Spark 3.2.1 中实现?如果没有,有什么建议可以使用 Spark 3.2.1 处理 DataBricks 中的条件期望吗?

python pandas apache-spark databricks great-expectations

5
推荐指数
1
解决办法
827
查看次数

无需 CLI 创建期望套件

我开始在一个项目中使用远大期望。我正在尝试以编程方式创建一个具有远大期望的期望套件。我有一个 GCS 数据源(由 2 个 csv 文件组成),定义如下great_expectations.yml

datasources:
  GCS_Data:
    class_name: Datasource
    data_connectors:
      default_inferred_data_connector_name:
        class_name: InferredAssetFilesystemDataConnector
        default_regex:
          group_names:
            - data_asset_name
          pattern: (.*)
        base_directory: gs://mybucket/GCS_datasource
        module_name: great_expectations.datasource.data_connector
      default_runtime_data_connector_name:
        class_name: RuntimeDataConnector
        module_name: great_expectations.datasource.data_connector
        assets:
          my_runtime_asset_name:
            class_name: Asset
            module_name: great_expectations.datasource.data_connector.asset
            batch_identifiers:
              - runtime_batch_identifier_name
    execution_engine:
      class_name: PandasExecutionEngine
      module_name: great_expectations.execution_engine
    module_name: great_expectations.datasource
config_variables_file_path: uncommitted/config_variables.yml
Run Code Online (Sandbox Code Playgroud)

当我尝试创建期望套件时,我运行:

   
import great_expectations as ge
from great_expectations.core.batch import BatchRequest
from great_expectations.checkpoint import SimpleCheckpoint #needed?
from great_expectations.exceptions import DataContextError

context = ge.data_context.DataContext()

# Note that if you modify this batch request, …
Run Code Online (Sandbox Code Playgroud)

validation great-expectations

5
推荐指数
0
解决办法
924
查看次数

如何将数据帧转换为 Great_expectations 数据集?

我有一个 pandas 或 pyspark 数据框df,我想在其中运行期望。我的数据框已经在内存中了。如何将我的数据框转换为great_expectations 数据集?

这样我就可以这样做:

df.expect_column_to_exist("my_column")
Run Code Online (Sandbox Code Playgroud)

python pandas pyspark great-expectations

4
推荐指数
1
解决办法
4763
查看次数

在 great_expectations 中使用腌制的 Pandas 数据框作为数据资产

可能是一个非常简单的问题,但我无法从 great_expectations 的文档中弄清楚。我想在本地存储为腌制文件“.pkl”的 Pandas 数据帧上运行一些测试。

当我运行great_expectations add-datasource它时,它忽略了 .pkl 文件,只为 .csv 文件创建了资产。从 Pandas 读取 csv 文件很慢,所以如果 GE 可以支持其他格式,如 pickle 和 HDF,那就太好了。

如何加载 .pkl 或 .hdf 文件作为 GE 的资产?

我正在使用 v0.8.7 :)

python pandas great-expectations

3
推荐指数
1
解决办法
508
查看次数

如何将 Apache Spark 中的远大期望结果保存到文件中 - 使用数据文档

我已经成功创建了 Great_Expectation 结果,我想将期望结果输出到 html 文件。

很少有链接强调如何使用所谓的“数据文档”以人类可读的方式显示结果https://docs.greatexpectations.io/en/latest/guides/tutorials/getting_started/set_up_data_docs.html#tutorials-getting-started -设置数据文档

但说实话,文档非常难以理解。

我的期望只是验证数据集中的乘客数量在 1 到 6 之间。我希望帮助使用“数据文档”将结果输出到文件夹,或者可以将数据输出到文件夹:

import great_expectations as ge
import great_expectations.dataset.sparkdf_dataset
from great_expectations.dataset.sparkdf_dataset import SparkDFDataset
from pyspark.sql.types import StructType, StructField, IntegerType, StringType, BooleanType
from great_expectations.data_asset import DataAsset

from great_expectations.data_context.types.base import DataContextConfig, DatasourceConfig, FilesystemStoreBackendDefaults
from great_expectations.data_context import BaseDataContext
from great_expectations.data_context.types.resource_identifiers import ValidationResultIdentifier
from datetime import datetime
from great_expectations.data_context import BaseDataContext


df_taxi = spark.read.csv('abfss://root@adlspretbiukadlsdev.dfs.core.windows.net/RAW/LANDING/yellow_trip_data_sample_2019-01.csv', inferSchema=True, header=True)

taxi_rides = SparkDFDataset(df_taxi)

taxi_rides.expect_column_value_lengths_to_be_between(column='passenger_count', min_value=1, max_value=6)

taxi_rides.save_expectation_suite()
Run Code Online (Sandbox Code Playgroud)

该代码是从 Apache Spark 运行的。

如果有人能给我指出正确的方向,我就能找到答案。

apache-spark pyspark databricks azure-databricks great-expectations

3
推荐指数
1
解决办法
3928
查看次数

数据流的数据测试框架(deequ vs Great Expectations)

我想在我的管道中引入数据质量测试(空字段/最大-最小值/正则表达式等...),这将在数据登录到数据库之前消耗 kafta 主题测试数据。

我很难在 Deequ 和远大前程框架之间做出选择。Deequ 缺乏清晰的文档,但具有“异常检测”功能,可以将以前的扫描与当前的扫描进行比较。伟大的期望有非常好的和清晰的文档,因此开销更少。我认为这些框架都不是专门为数据流而设计的。

任何人都可以提供一些建议/其他框架建议吗?

python qa great-expectations amazon-deequ

1
推荐指数
2
解决办法
1176
查看次数