Pyspark 删除数据帧列中的多个字符

2024-04-25

看看 pyspark,我明白了translate and regexp_replace帮助我了解数据框列中存在的单个字符。

我想知道是否有一种方法可以在regexp_replace or translate这样它就会解析它们并用其他东西替换它们。

用例:删除 A 列中的所有 $、# 和逗号 (,)


您可以使用pyspark.sql.functions.translate() http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.functions.translate进行多次替换。传入要替换的字母字符串和另一个表示替换值的相同长度的字符串。

例如,假设您有以下 DataFrame:

import pyspark.sql.functions as f
df = sqlCtx.createDataFrame([("$100,00",),("#foobar",),("foo, bar, #, and $",)], ["A"])
df.show()
#+------------------+
#|                 A|
#+------------------+
#|           $100,00|
#|           #foobar|
#|foo, bar, #, and $|
#+------------------+

并想更换('$', '#', ',') with ('X', 'Y', 'Z')。只需使用translate like:

df.select("A", f.translate(f.col("A"), "$#,", "XYZ").alias("replaced")).show()
#+------------------+------------------+
#|                 A|          replaced|
#+------------------+------------------+
#|           $100,00|           X100Z00|
#|           #foobar|           Yfoobar|
#|foo, bar, #, and $|fooZ barZ YZ and X|
#+------------------+------------------+

如果您想删除所有实例('$', '#', ','),你可以这样做pyspark.sql.functions.regexp_replace() http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.functions.regexp_replace.

df.select("A", f.regexp_replace(f.col("A"), "[\$#,]", "").alias("replaced")).show()
#+------------------+-------------+
#|                 A|     replaced|
#+------------------+-------------+
#|           $100,00|        10000|
#|           #foobar|       foobar|
#|foo, bar, #, and $|foo bar  and |
#+------------------+-------------+

图案"[\$#,]"表示匹配括号内的任何字符。这$必须转义,因为它在正则表达式中具有特殊含义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyspark 删除数据帧列中的多个字符 的相关文章

随机推荐

  • Web 事件提供程序“EventLogProvider”引发以下异常 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我无法让新的 ASP NET 4 0
  • 在 Tensorboard 中获取简单的绘图

    我正在尝试在张量板上画一个简单的图 就像他们在主页上一样 如下所示 To understand how this is working I ve wrote the following import tensorflow as tf imp
  • 具有异构数据类型的 3 个字段的多列索引

    我有一个包含 3 个字段的 postgres 表 a postgis几何 b 数组 varchar c 整数 我有一个涉及所有这些的查询 我想添加一个多列索引来加快速度 但我不能 因为这 3 个字段由于其性质而不能位于同一索引下 这种情况下
  • 创建当前日期的查询匹配[重复]

    这个问题在这里已经有答案了 可能的重复 在 JPA 查询中使用 CURRENT DATE 的示例 https stackoverflow com questions 1637323 example of using current date
  • ASP.Net Identity 2.0:用户是System.Web.Security.RolePrincipal,为什么?

    我正在尝试在现有应用程序中实现 Asp Net Identity 2 0 OWIN 但在角色方面我遇到了各种麻烦 我从项目模板创建了一个示例项目 并且 据我所知 我已将其中的所有内容复制到我的应用程序中 我修改了连接信息 以便身份验证表来自
  • .Net 与 Java 垃圾收集器

    有谁知道 Java 和 Net 垃圾收集器之间的主要区别 网上搜索并没有透露太多信息 这是一个测试中出现的问题 区别在于 CLR Net GC 和 JVM GC 之间 而不是语言本身 两者都可能发生变化 并且其行为规范宽松 允许在不影响程序
  • ASP.NET MVC 路由中的通配符

    我正在使用 asp net mvc 与 vs2008 和 IIS7 我想要完成的是所有以 summer 开头的请求都路由到同一个控制器 到目前为止 我已经构建了大量的路线 但它们都是针对一条路径的 带有偏离参数的路径 但这条路线必须路由 w
  • 将输入类型数限制为角度 2 中的小数点后 2 位

    我在一个html页面上有很多输入框 我想限制用户输入小数点后两位后的任何数字 目前尝试应用 html 5 input Step 0 00 但不起作用 任何打字稿解决方案也可以 请参阅以下指令的演示Plnkr https plnkr co e
  • JPQL 和联接表

    我对 SQL 和 JPQL 的理解不是很好 我一直在尝试创建以下 sql 语句的 JPQL 查询 select group from user user group group where user group user id user i
  • Elixir 中的递归和匿名函数

    我正在尝试定义一个匿名函数来执行点积 我可以将其编码为私有函数 没有任何问题 但我正在努力解决匿名函数语法 我知道我可以以不同的方式实现这一点 但我试图了解如何使用模式匹配和递归来定义匿名函数 这是我当前的实现 dot fn i input
  • 最大覆盖不相交间隔

    假设您有 k 无法尝试所有可能的子集 2 k 不可行 贪婪方法按 a i 区间覆盖算法 排序 按 b i 最大不相交区间数算法 排序不起作用 不知道是否有动态程序解决方案 考虑到输入的大小 我认为解决方案应该是 O k log k 或 O
  • JavaScript 中的奇怪字符导致其无法加载

    我的网站在本地主机上运行良好 我的 JavaScript 正在加载并运行良好 但是当我部署站点时 脚本不起作用 当我右键单击页面并说查看源代码 然后查看链接的脚本文件时 文件开头有一些奇怪的字符 函数 在本地主机上 我的脚本文件像这样开始
  • 如何在powerpoint vba中制作进度条?

    如何使用 PowerPoint VBA 制作进度条 它应该作为幻灯片上的动画来完成 这是您要找的吗 http www pptfaq com FAQ00597 htm http www pptfaq com FAQ00597 htm
  • `npm i` 命令有什么作用?

    什么是i在 npm CLI 中执行命令 我看到它是这样使用的 npm i package The iflag 是一个别名install so npm i package 是相同的 npm install package 从文档中 npm i
  • 如何创建可以跨多个页面或在框架/iframe 内访问的全局 JSP 变量?

    简而言之 如何在 JSP 中创建全局变量 以便可以跨其他 JSP 页面和 或内部框架 iframe 访问它 我尝试了 但出现错误 无法在单独的 jsp 页面中解析该变量 是否有可能在多个页面中访问 JSP 变量而无需求助于查询字符串 会话变
  • git tag -l 不会删除已删除的标签

    这是场景 我将我的存储库克隆到一个定期更新的目录 git pull 现在我又创建了一个目录并签出了相同的存储库 我必须创建一些标签 但我错误地创建了名称错误的标签 所以我从第一个目录中删除了标签 git tag d old git push
  • 错误:SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零

    我的 Android 应用程序出现问题 我有一个按钮和一个关联的事件 但是当我第一次单击时出现错误 跨度不能有零长度 但是当我第二次单击时 事件 onclick 运行良好 看看我的java代码 public class MainActivi
  • 如何调试 Apache mod_rewrite

    我对 mod rewrite 有两个主要问题 当我的规则无效时 不会报告任何有意义的错误 To reliably test each modification I have to erase Google Chrome s cache Th
  • 新的 Basecamp api 告诉我该地址没有 Basecamp 帐户

    我是 Basecamp api 的新手 在尝试最简单的示例时 curl u user pass H User Agent MyApp email protected cdn cgi l email protection https base
  • Pyspark 删除数据帧列中的多个字符

    看看 pyspark 我明白了translate and regexp replace帮助我了解数据框列中存在的单个字符 我想知道是否有一种方法可以在regexp replace or translate这样它就会解析它们并用其他东西替换它