首页 > 编程问答 >如何将数据帧转换为 Great_expectations 数据集?

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

时间:2024-08-07 03:42:09浏览次数:13  
标签:python pandas pyspark great-expectations

我有一个 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

相关文章

  • ArcPro (3.2+) Python 脚本工具中从 .atbx Toolbox 相对导入本地模块
    我设置了一个库和关联的ArcGISToolbox,以便:/root├──Toolbox.atbx├──mylib│└──my_function.py├──my_tools│└──my_gp_script.py我将代码存储库的开发克隆保存在公司共享服务器上的一个位置,并在GitHub上托管一份副本。当我进行更新时,我会......
  • Python vs. R:揭秘机器学习领域的双璧
    一、引言1.1背景介绍随着大数据和人工智能技术的飞速发展,机器学习已经成为了一个热门领域。在机器学习领域,Python和R是两种广泛使用的编程语言。Python因其简洁易读的语法和强大的库支持,成为了最受欢迎的编程语言之一。而R则以其强大的统计分析和数据可视化能力,在统计学......
  • Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10
    Windows10安装编译后的pysqlcipher3-1.2.1基于Python3.8.10本文主要是将直接安装编译后的文件,不一定的成功,但是可以尝试使用,若无法直接安装,请参考编译过程,自行编译安装,编译过程见这里安装pysqlcipher3这里用32位举例因为64位安装完全相同,只需要把对应的位数换成64......
  • 【Python】Python基础语法知识点汇集
    Python是一种高级的、解释型的编程语言,以其清晰的语法和代码可读性而闻名。本篇文章将汇集Python编程的基础语法知识点,为初学者提供一个全面的学习指南。......
  • 启动Python 的内置服务器访问本地图片
    要使用Python的内置服务器访问本地图片并正确地显示在浏览器中,你需要将图片文件放在内置服务器的根目录或其子目录中。以下是详细步骤:1.将图片文件复制到服务器根目录:例如,将zheng.jpeg文件复制到一个特定的目录中(例如,你的项目目录)。假设你将图片文件复制到C:\Users\panda......
  • 17:Python数据类型练习题
    #1获取c1,c2相同的元素列表c1=[11,22,33]c2=[22,33,44]foriinc1:ifiinc2:print(i)#2获取c1中有,c2没有的元素列表foriinc1:ifinotinc2:print(i)#3获取c2中有,c1没有的元素列表foriinc2:ifinotinc1:print(i)#4获......
  • (Jmeter新玩法)Python 调 Jmeter执行参数化jmx脚本
    #Python调Jmeter执行参数化jmx脚本importosfromos.pathimportjoinimporttimeimportrefromstringimportTemplatejmeter_Home=r"F:\softtotal\xxx\bin\jmeter.bat"#jmx文件路径currpath=os.path.dirname(os.path.realpath(__file__))#要运行的jmx脚......
  • python爬虫预备知识三-多进程
    python实现多进程的方法:fork、multiprocessing模块创建多进程。os.fork方法os.fork方法只适合于unix/linux系统,不支持windows系统。fork方法调用一次会返回两次,原因在于操作系统将当前进程(父进程)复制出一份进程(子进程),这两个进程几乎完全相同,fork方法分别在父进程和子进程中......
  • PEP 8 – Python 代码风格指南中文版(七)
    编程建议(2) 定义异常时,应该从Exception类继承,而不是从BaseException类继承。直接从BaseException继承的异常通常是那些几乎不应该被捕获的异常。设计异常层次结构时,应该基于捕获异常的代码可能需要进行的区分,而不是基于异常被抛出的位置。目标是通过编程方式回答“出了......
  • Python-记录一次迭代求和
    importitertoolsdefget_result(hope,list_input):""":paramhope:#期望相加所得参数:paramlist_input:#所有数值:return:"""defgenerate_combination(items,length):forcombinationinitertools.co......