如何在 PySpark 中创建返回字符串数组的 udf?

2024-04-10

我有一个返回字符串列表的 udf。这应该不会太难。我在执行 udf 时传入数据类型,因为它返回一个字符串数组:ArrayType(StringType).

现在,不知怎的,这不起作用:

我正在操作的数据框是df_subsets_concat看起来像这样:

df_subsets_concat.show(3,False)
+----------------------+
|col1                  |
+----------------------+
|oculunt               |
|predistposed          |
|incredulous           |
+----------------------+
only showing top 3 rows

代码是

from pyspark.sql.types import ArrayType, FloatType, StringType

my_udf = lambda domain: ['s','n']
label_udf = udf(my_udf, ArrayType(StringType))
df_subsets_concat_with_md = df_subsets_concat.withColumn('subset', label_udf(df_subsets_concat.col1))

结果是

/usr/lib/spark/python/pyspark/sql/types.py in __init__(self, elementType, containsNull)
    288         False
    289         """
--> 290         assert isinstance(elementType, DataType), "elementType should be DataType"
    291         self.elementType = elementType
    292         self.containsNull = containsNull

AssertionError: elementType should be DataType

据我了解,这是执行此操作的正确方法。以下是一些资源:pySpark 数据框“assert isinstance(dataType, DataType),”dataType 应该是 DataType” https://stackoverflow.com/questions/30105258/pyspark-data-frames-assert-isinstancedatatype-datatype-datatype-should-be 如何在 PySpark 的 UDF 中返回“元组类型”? https://stackoverflow.com/questions/36840563/how-to-return-a-tuple-type-in-a-udf-in-pyspark

但这些都没有帮助我解决为什么这不起作用。我正在使用 pyspark 1.6.1。

如何在 pyspark 中创建返回字符串数组的 udf?


你需要初始化一个StringType实例:

label_udf = udf(my_udf, ArrayType(StringType()))
#                                           ^^ 
df.withColumn('subset', label_udf(df.col1)).show()
+------------+------+
|        col1|subset|
+------------+------+
|     oculunt|[s, n]|
|predistposed|[s, n]|
| incredulous|[s, n]|
+------------+------+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PySpark 中创建返回字符串数组的 udf? 的相关文章

  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • Matplotlib 标准化颜色条 (Python)

    我正在尝试使用 matplotlib 当然还有 numpy 绘制轮廓图 它有效 它绘制了它应该绘制的内容 但不幸的是我无法设置颜色条范围 问题是我有很多图 并且需要所有图都具有相同的颜色条 相同的最小值和最大值 相同的颜色 我复制并粘贴了在
  • 在 Python 中使用 sec 函数的反函数

    我正在创建一个程序 用于计算从一定高度范围和设定初始速度发射射弹的最佳角度 在我需要使用的最终方程中 存在一个反 sec 函数 它导致了一些麻烦 我已经导入了数学并尝试使用 asec 无论如何 但是数学似乎无法计算反秒函数 我也明白 sec
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • 使用 python 将文本发送到带有逗号分隔符的列

    如何使用分隔符 在 Excel 中将一列分成两列 并使用 python 命名标题 这是我的代码 import openpyxl w openpyxl load workbook DDdata xlsx active w active a a
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • 使用 lambda 函数更改属性值

    我可以使用 lambda 函数循环遍历类对象列表并更改属性值 对于所有对象或满足特定条件的对象 吗 class Student object def init self name age self name name self age ag
  • 使用 Keras 和 fit_generator 绘制 TensorBoard 分布和直方图

    我正在使用 Keras 使用 fit generator 函数训练 CNN 这似乎是一个已知问题 https github com fchollet keras issues 3358TensorBoard 在此设置中不显示直方图和分布 有
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • Pyspark - 一次聚合数据帧的所有列[重复]

    这个问题在这里已经有答案了 我想将数据框分组到单个列上 然后对所有列应用聚合函数 例如 我有一个包含 10 列的 df 我希望对第一列 1 进行分组 然后对所有剩余列 均为数字 应用聚合函数 sum 与此等效的 R 是 summarise
  • 如何识别图形线条

    我有以下格式的路径的 x y 数据 示例仅用于说明 seq p1 p2 0 20 2 3 1 20 2 4 2 20 4 4 3 22 5 5 4 22 5 6 5 23 6 2 6 23 6 3 7 23 6 4 每条路径都有多个点 它们

随机推荐

  • 使用 cancan 和 devise 授权 Rails 中未登录的用户行为

    Post hidden boolean 我希望登录用户可以看到所有帖子 而未登录用户只能访问隐藏字段为 false 的帖子 所以我在cancan的能力模型中这样写 if user signed in can read Post else c
  • 在 lua 中使用相等运算符比较数字有多安全?

    在我的引擎中 我有一个用于脚本编写的 Lua VM 在脚本中 我写了这样的内容 stage stage 1 if stage 5 then end and objnum tonumber 5 if stage objnum 根据 Lua 来
  • Node.js:从 jpeg 图像到视频文件的实时转换

    我正在使用node js 并通过socket io 库接收实际上是jpeg 图像的数据块 这些图像是从远程网络摄像头捕获的实时视频帧 我被迫将视频作为 jpeg 帧进行流式传输 我正在寻找一种方法来动态转换视频文件 mpeg 4 或 mjp
  • 将 ASP.Net 5 Web 应用程序部署到 Azure 时如何删除现有文件

    我有一个 ASP Net 5 中的 Web 应用程序 其源代码位于 VS Team Services 中 使用 Team Services 构建系统 我想将其直接部署到 Azure 进行持续部署 我已按照此处的步骤操作 https msdn
  • 如何将 cin 和 cout 重定向到文件?

    我怎样才能重定向cin to in txt and cout to out txt 这是您想要做的事情的一个工作示例 阅读注释以了解代码中每一行的作用 我在我的电脑上用 gcc 4 6 1 测试了它 效果很好 include
  • 递归查询 LDAP 组成员资格

    我正在编写一个基于 MVC NET 4 0 的网站 该网站需要来自我的公司 LDAP 服务器的登录凭据 我的代码要求的是仅允许属于特定组的用户 例如 我可能正在寻找属于 企业 IT 组的用户 我的凭据可能属于 系统管理员 组 该组是 公司
  • Django 计算子查询中的行数

    我需要计算子查询中的行数 这是我的 sqlite 解决方案 class SQCount Subquery Count lines in subquery template SELECT count FROM subquery s count
  • 在 XSL 转换期间维护 XML 注释

    XML
  • TF-lite 模型测试失败并出现运行时错误

    我已经为 MNIST 分类创建了一个 TF lite 模型 我使用 TF 1 12 0 并在 Google Colab 上运行它 我想使用 TensorFlow Lite Python 解释器对其进行测试 如 https github co
  • 在 C#/.NET 中检测图像 URL

    有没有办法可以检测图像 URL 例如 http mysite com image jpg 但还有其他格式吗 我正在使用 C 和 NET 4 0 就像是 bool isImageUrl string URL edit我的意思是如果 URL 指
  • Matplotlib 颜色条和 WCS 投影

    我正在尝试编写一个函数来显示天文图像 顶部有一个颜色条 自动具有相同的 x 轴长度 我遇到了问题 因为当我尝试将勾号放在顶部时 它没有执行任何操作 它将勾号保留在颜色条的底部 以及颜色条的 y 轴上的勾号 我认为这可能是 x 轴的 WCS
  • 在 MVC 中拥有巨大的控制器或许多控制器更好?

    我们正在 ASP NET MVC 中构建一个相当大的 HR 应用程序 到目前为止 我们的控制器变得相当大 例如 我们有一个员工控制器 并且包含所有员工视图 个人信息 员工扣除额 家属等 每个视图都可能有多个操作或子视图 例如 CRUD 每个
  • 从非 UI 线程打开 Windows 窗体

    如何从非 UI 线程正确打开 Windows 窗体 var th new Thread gt var form new YourForm form FormClosing s e gt Application ExitThread form
  • 获取给定路径的文件ID

    有没有直接的方法通过给出路径来获取文件ID 例如 some folder deep inside file txt 我知道这可以通过递归检查文件夹的内容来完成 但简单的调用会更好 Thanks 我们目前不支持这一点 但在我们继续构建 v2
  • ACTION OPEN DOCUMENT TREE 仅返回空的最近文件夹

    我从之前的帖子中仔细复制了以下代码片段 它在模拟器和我的 Nexus 9 设备上都有效 在一定程度上 但是 我得到的只是一个空的 最近 文件夹 而且我从未到达写入文件的代码 我必须更改什么才能获得正确的文档树 private void te
  • 严格的 DOCTYPE 影响图像之间的间距

    当我切换到 XHTML Strict DOCTYPE 时 我遇到了图像间距问题 下面的代码 使用雅虎的重置样式表来消除所有默认的浏览器填充 在下面的两个图像之间留下大约 4 像素的间隙 但仅当我使用严格的文档类型时 为什么是这样 这只是 C
  • 在 Google DataStore GQL 中,如何对 WHERE 术语进行分组?

    我需要对 WHERE 子句中的术语进行分组 例如 WHERE param1 foo1 OR param1 foo2 AND param2 bar1 OR param2 bar2 但它给了我一个语法错误 说括号是 意外的 实际错误是 GQL
  • IntelliJ IDEA 中的水平滚动与垂直滚动类似

    IntelliJ IDEA 中的垂直滚动按照我们的预期工作 上下移动视口 然而 水平滚动不会移动视口 而是左右移动光标 如何使水平滚动移动视口 就像垂直滚动一样 如果重要的话 这是在 Dell Inspiron 5000 系列笔记本电脑上
  • 通过意图打开谷歌地图在android中的特定位置

    我正在设计一个应用程序 我想在地图上显示特定位置 我路过String已放置的地址Google Map 以下是我的Intent code String url http maps google com maps daddr address I
  • 如何在 PySpark 中创建返回字符串数组的 udf?

    我有一个返回字符串列表的 udf 这应该不会太难 我在执行 udf 时传入数据类型 因为它返回一个字符串数组 ArrayType StringType 现在 不知怎的 这不起作用 我正在操作的数据框是df subsets concat看起来