我有一个 pandas 或 pyspark 数据框
df
我想在其中运行期望。
我的数据框已经在内存中了。如何将我的数据框转换为 Great_expectations 数据集?
以便我可以执行以下操作:
df.expect_column_to_exist("my_column")
Great Expectations 不直接在 Pandas 或 PySpark 数据框上运行。而是在所谓的“数据源”上运行,这些数据源可以是 Pandas 或 PySpark 数据框。
可以使用以下两种方法在 Great Expectations 中使用的数据框:
1. 使用
from_pandas
/
from_spark
方法:
如果已经将数据框加载到内存中,则这是最简单的方法。可以使用
great_expectations.dataset.Dataset
类的
from_pandas
或
from_spark
方法直接从 Pandas 或 PySpark 数据框创建 Great Expectations 数据集。
```python import great_expectations as ge
# 对于 Pandas DataFrame ge_df = ge.dataset.Dataset.from_pandas(df)
# 对于 PySpark DataFrame ge_df = ge.dataset.Dataset.from_spark(df)
ge_df.expect_column_to_exist("my_column") ```
2. 使用
DataContext
:
对于更复杂的情况,例如,如果需要将期望保存到配置文件并在以后重复使用,则可以使用
DataContext
。
DataContext
帮助管理 Great Expectations 项目。
```python import great_expectations as ge from great_expectations.data_context.data_context.file_data_context import ( FileDataContext, )
# 创建 DataContext(如果尚不存在) context = FileDataContext.create("./great_expectations")
# 创建一个“in_memory”数据源 name = "my_dataframe_datasource" datasource = context.sources.add_pandas(name)
# 创建一个“batch”来表示的数据 batch_request = datasource.get_asset( "my_dataframe_asset", dataframe=df, )
# 从批处理请求中获取期望 expectation_suite_name = "my_expectation_suite" validator = context.get_validator( batch_request=batch_request, expectation_suite_name=expectation_suite_name, )
# 现在可以使用期望了 validator.expect_column_to_exist("my_column")
# 保存的期望 validator.save_expectation_suite(discard_failed_expectations=False) ```
这将在的项目中创建一个名为
my_expectation_suite.json
的新期望套件。
记住,这些只是基本示例。Great Expectations 提供了许多用于加载数据和定义期望的选项。有关更多详细信息,请参阅文档:https://docs.greatexpectations.io/docs/guides/connecting_to_your_data/how_to_get_a_batch_of_data_from_a_pandas_dataframe
标签:python,pandas,pyspark,great-expectations From: 64241588