Apache Nifi:使用更新记录处理器替换列中的值

2024-03-02

我有一个 csv,看起来像这样:

name,code,age
Himsara,9877,12
John,9437721,16
Razor,232,45

我必须更换色谱柱code根据一些正则表达式。我的逻辑如下面的 Scala 代码所示。

if(str.trim.length == 9 && str.startsWith("369")){"PROB"}
else if(str.trim.length < 8){"SHORT"}
else if(str.trim.startsWith("94")){"LOCAL"}
else{"INT"}

我用了一个UpdateRecord处理器替换中的数据code柱子。我添加了一个名为/code其中包含该值。

${field.value:replaceFirst('^[0-9]{1,8}$','SHORT'):replaceFirst('[94]\w+','OFF_NET')}

This works当替换代码时

  1. 长度小于8,带“SHORT”
  2. 以“LOCAL”开头的 94

我无法找到替换列中数据的方法,code当它等于8位数字时AND当它以 0 开头时。另外我怎样才能替换数据如果不陷入任何条件上文提到的。 (数据应替换为的情况INT)

希望您可以建议将工作流程或值添加到更新记录中的属性中,以实现上述两个替换。


有一个length and startsWith功能。

${field.value:length():lt(8):ifElse(
  'SHORT', ${field.value:startsWith(94):ifElse(
  'LOCAL', ${field.value:length():equals(9):and(${field.value:startsWith(369)}):ifElse(
  'PROB', 'INT'
)})})}

我已经添加了换行符以便于识别功能,但应该将其删除。

顺便问一下,INT 表示要替换某些字符串值吗?对困惑感到抱歉。


好吧,如果你只想正则表达式,你可以尝试下面的代码。

${field.value
  :replaceFirst('[0-9]{1,8}', 'SHORT')
  :replaceFirst('[94]\w+', 'OFF_NET')
  :replaceFirst('369[0-9]{6}', 'PROB')
  :replace(${field.value}, 'INT')
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Nifi:使用更新记录处理器替换列中的值 的相关文章

  • 在 Vim 中搜索并替换为递增值

    假设我写了一个简单的 CSS 规则 如下所示 star 10 background url stars png no repeat 0 0 而我需要10个 所以我复制了9次 star 10 background url stars png
  • 使用 PHP 将列标题添加到 CSV 文件

    我正在尝试将 php mysql 生成的表转换为可下载的 csv 文件 当用户输入搜索参数时 将调用 mysql 表并将结果作为表返回 我使用了该线程中提供的解决方案 效果非常好 在 PHP 中为用户创建 CSV 文件 https stac
  • Google Apps 脚本 Gmail CSV 导入工作表错误

    我从各种谷歌搜索中拼凑了这段代码 如果电子邮件有特定标签 这些代码将提取电子邮件的 CSV 附件 function importCSVFromGmail gets first latest message with set label va
  • 在 SQL 中将 CSV 字段拆分为不同的行

    我的一位同事在做COBOL程序时遇到了这个问题 最终在应用程序层面解决了它 我仍然很好奇是否可以使用 SQL 在数据访问级别上解决它 这在某种程度上与这另一个问题 https stackoverflow com questions 2903
  • 如何在python中查找csv文档中的特定行

    我想要做的是读入 csv 文档并找到 SN 列 gt 20 中的所有值 然后创建一个仅包含 SN gt 20 行的新文件 我知道我需要做 阅读原始文件 打开一个新文件 迭代原始文件的行 我能够做的是找到 SN gt 20 的行 import
  • MySQL REPLACE:如何替换由相同头和尾分隔的每个不同子字符串中出现的所有字符

    我有这个字符串 p span b C10373 FIAT GROUP AUTOMOBILES RAMO DI AZIENDA DI KUEHNE NAGEL b span p p la somma pari a 400 IVA per l
  • 将 CSV 文件上传到 SQL 服务器

    上传大文件的最佳方式是什么csv使用 C 将数据文件导入 SQL Server 该文件包含大约 30 000 行和 25 列 首先 你不需要编程的东西 您可以使用 SQL 管理工具直接将 CSV 文件上传到 SQL 数据库 但是 如果您确实
  • 通过 REST 发布 NIFI 模板?

    我有多个 nifi 服务器 我希望能够通过脚本的 REST 接口将模板发布到这些服务器 The controller templates endpoint appears to be the proper REST endpoint to
  • 将 pandas 数据框中的所有 inf、-inf 值替换为 NaN

    我有一个大型数据框 不同列中包含 inf inf 值 我想用 NaN 替换所有 inf inf 值 我可以逐栏这样做 所以这有效 df column name df column name replace np inf np nan 但我的
  • Django:生成 CSV 文件并将其存储到 FileField 中

    在我的 Django 视图文件中 我需要从元组列表生成 CSV 文件 并将 CSV 文件存储到模型的 FileField 中 class Bill models Model billId models IntegerField bill m
  • 在 Shiny 的压缩文件夹中下载多个 csv 文件

    有人可以指出我如何使这个下载 zip 功能在 server R 中工作吗 当我运行这个时 我收到以下错误 1 var folders 00 1dk1r000h01000cxqpysvccm005p87 T Rtmps3T6Ua write
  • LOAD DATA LOCAL INFILE 给出错误:此 MySQL 版本不允许使用命令

    我有一个调用 MySQL 的 PHP 脚本LOAD DATA INFILE从 CSV 文件加载数据 但是 在生产服务器上 我最终遇到了以下错误 用户访问被拒绝 使用密码 是 作为快速解决方法 我将命令更改为LOAD DATA LOCAL I
  • Scala 和 Spark:Windows 上的 Dataframe.write._

    有人设法使用 Spark 写入文件 尤其是 CSV 吗 数据框 http spark apache org docs latest api scala index html org apache spark sql Dataset在 Win
  • Bash:查找并连接文件

    我有以下结构 home DIR1 file ab csv DIR2 file cd csv DIR3 file3 ef csv Where file csv包含多行浮点数 每个 DIR 都有不同的浮点数 我想抓取所有的内容file csv文
  • 将 CSV 文件读入 Java 作为数据库表

    我发现了很多关于使用 Java 读取 CSV 的帖子 并且他们所指向的 API 在读取 CSV 文件时都采用了面向行的方法 就像 当你得到一行时 获取每一列的值 我希望有一个更高级别的 API 比如在 Perl 中 DBI 允许您在 CSV
  • 使用 PowerShell 检查 AD 中是否存在组

    我想为该组创建代码来检查该组是否存在 但是 我无法开始工作 因为它成功地将用户和组的部分成员仅添加到一个组中 而不是其他组 因为我设法在活动目录中创建一个组并从 csv 中读取 这是我的代码和结果 似乎在成功添加用户并添加组成员后我总是收到
  • 在 PowerPoint 中查找文本并替换为 Excel 单元格中的文本

    我正在尝试查找 PowerPoint 幻灯片中的单词列表并将其替换为 Excel 文件中单元格中的值 我在 PowerPoint 中运行 VBA 但出现此错误 运行时错误 2147024809 80070057 指定的值超出范围 代码似乎停
  • 仅从 tsv 中的列索引生成“特殊”字典结构

    想象一下这样一个制表符分隔的文件 9606 1 GO 0002576 TAS platelet degranulation Process 9606 1 GO 0003674 ND molecular function z Function
  • Apache Nifi/Cassandra - 如何将 CSV 加载到 Cassandra 表中

    我每天都会收到多次传入的各种 CSV 文件 存储来自传感器的时间序列数据 这些传感器是传感器站的一部分 每个 CSV 均以其来源的传感器站和传感器 ID 命名 例如 station1 sensor2 csv 目前 数据存储如下 gt cat
  • 如何使用 zend 导入 CSV

    如何使用 zend 框架导入 CSV 文件 我应该使用 zend file transfer 还是有任何我必须研究的特殊类 另外 如果我使用 zend file transfer 是否有任何特殊的 CSV 验证器 你不必使用任何 zend

随机推荐