PySpark MapType 的 UDF2024 年 8 月 29 日 | 4 分钟阅读 什么是 PySpark DataFrame?PySpark DataFrame 是一个数据集合,它被组织成列。DataFrame 类似于 SparkSQL 中的关系表。我们可以使用 SparkSession 中的不同函数来创建 pyspark DataFrame。 PySpark MapTypePySpark 中的 MapType 是一个用于定义字典的数据类型,它可以存储键值对、Map 类型对象。它包含三个组成部分:键类型 (数据类型)、值类型 (数据类型) 和 valueContainsNull (布尔类型)。MapType 还可以用于定义 Map 的键值对。 PySpark 允许您使用用户自定义函数 (UDF) 构建自定义函数来更改 Spark DataFrame。PySpark 支持原始数据类型的 UDF,但处理 MapType 这种具有混合值类型的复杂数据结构需要定制的方法。 PySpark MapType 语法其中 keyType 是 Map 中键的数据类型 (它是一个非空值) valueType 是 Map 中值的数据类型 valueContainsNull 是一个布尔类型,用于检查值是否包含 null 值。 PySpark MapType 的 UDFpyspark.sql.function 提供了 UDF 函数,用于定义自定义函数。它接受两个参数:函数和返回类型。 PySpark UDF 函数语法MapType 列指定一个 Map 或字典样式的结构,它将键映射到值。它是一组键值对,其中键和值可能是各种数据类型。 PySpark UDF、Spark UDF 或 Spark 中的用户自定义函数允许我们根据需要定义唯一的函数或操作。这使我们能够开发 Spark 提供的内置函数中未包含的方法。 Spark UDF 是独特且高效的,因为用户可以使用任何编程语言,如 Scala、Java、Python 或 R 来构建这些函数。Pyspark 或 Spark 中的 UDF 是逐行执行的。 PySpark UDF 架构在 Python 中创建 Spark UDF 需要几个步骤
在 PySpark 中注册 UDF让我们使用不同的方法在 PySpark 中创建 UDF。 首先,我们将导入所有必需的库,包括 PySpark 中的 UDF 方法。 然后,我们将创建一个包含不同整数的 DataFrame。 输出 root |-- id: map (nullable = false) 现在,我们将创建一个 UDF 来计算整数的平方。我们正在使用不同的方法创建 UDF。 1. 我们将使用装饰器模式创建 UDF。这是创建 UDF 的简单方法。 代码 输出 +------------------+ |square_integer(id)| +------------------+ | 1| | 4| | 9| | 16| | 25| +------------------+ only showing top 5 row 说明 我们使用此 UDF 打印了整数的平方。我们使用Map 类型的数据类型调用了 UDF 装饰器。然后,我们创建了一个返回整数平方的函数。然后,使用 show 函数,我们打印了它。 2. 我们将通过 UDF 方法创建 UDF,并将参数(函数及其返回类型)传递给它。 代码 输出 +------------------+ |square_integer(id)| +------------------+ | 1| | 4| | 9| | 16| | 25| +------------------+ only showing top 5 row 说明 我们使用此 UDF 打印了整数的平方。首先,我们创建了一个返回整数平方的函数。然后,我们使用 Map 类型的数据类型调用了 UDF 函数。然后,使用 show 函数,我们打印了它。 现在,我们将使用不同的函数修改 UDF。 在 UDF 中过滤和访问 Map 值。在此,我们将访问 Map 值并使用 getItem() 过滤行,它将从 Map 中获取值,并使用 filter() 方法过滤行。在这里,我们将创建一个包含不同水果的 DataFrame。 代码 输出 +----+---------------------------+-------------+ |id |fruit_count | Apple_count | +--------------------------------+-------------+ |1 | {Orange -> 3, Apple -> 2} | 2 | +--------------------------------+-------------+ 说明 我们将 DataFrame 中的值映射并过滤了行。然后,我们打印了水果及其计数的列表。 |
在许多学科中,如图形学、社交网络、交通系统等,图是描述对象之间关系的强大数学结构。在许多应用中,如图分析和计算,这是一项重要的活动,可能具有挑战性,尤其是在处理具有稀疏性的大型网络时...
阅读9分钟
在本教程中,我们将学习 Python 中的 Shutil 模块。我们将讨论如何使用 Python 脚本执行高级文件操作,例如创建新的复制文件并将其存档以及将内容从一个文件复制到另一个文件。让我们...
阅读 6 分钟
项目目标:公司或展厅管理部门如何确定现有或潜在消费者是否希望购买某款产品(在此案例中为汽车)?如果他们拥有客户的工资、年龄和其他因子字段(自变量)的信息,就可以做到这一点...
21 分钟阅读
如何在 Python 中将列表转换为字典?在 Python 中,列表是可变且有序的元素集合,而字典是无序、可变且索引的键值对集合。有几种方法可以将列表转换为...
阅读 2 分钟
有时,我们发现自己迷失在庞大的 Python 代码库中,并且难以跟踪变量的预期类型。在这种情况下,类型提示和注解可以提供帮助,以涵盖变量类型。在本教程中,我们将讨论注解...
阅读9分钟
JSON 代表 JavaScript Object Notation,它是一种流行的数据格式,用于表示结构化数据。它是服务器和 Web 应用程序之间传输数据的有效方式。JSON 中的数据表示类似于 Python 字典。示例如下。示例...
阅读1分钟
在之前的教程中,我们讨论了可以使用 Python 编程语言的不同包和模块对 PDF 文件执行的各种操作。我们学习了可用于操作 PDF 文件的不同 Python 库的工作原理。此外,我们...
阅读 8 分钟
Python被认为是一种极其灵活的编程语言,拥有广泛的库,它是一种高级语言,语法易于阅读和编写。Python的应用范围正在不同领域扩展,如机器学习、Web开发、网络安全、应用程序开发等等...
阅读 8 分钟
YouTube 是全球最大的视频分享平台,人们可以在其中上传和观看不同类别的视频。它已成为内容创作者与世界分享知识、技能和创造力的热门平台。随着内容创作者和观众数量的不断增加...
阅读 6 分钟
YouTube 是世界上最受欢迎的视频分享网站,每天都有数百万用户在各种视频上发表评论。对于不同的研究或分析应用程序,从这些评论中提取信息可能是一个重要的资源。使用 Python 编程,可以轻松检索评论...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India