scala - 如何在Scala中查找df列名是否包含子字符串
问题描述
我的 df 有多个列。我想检查一个列名是否包含子字符串。比如SQL中的%。
我尝试使用这个,但似乎不起作用。我不想给出全名来查找该列是否存在。
如果我能找到此列,我还想使用.withColumnRename
此类重命名该列
if (df.columns.contains("%ABC%" or "%BCD%")) df.withColumnrename("%ABC%" or "%BCD%","ABC123") else println(0)
解决方案
也许你可以试试这个。
- 过滤器可以帮助您选择需要更新的列。
- 在方法中写下你的更新逻辑
flodLeft()()
。
flodLeft
在 scala 中是一个有用的方法。如果您想了解更多关于 flodLeft 的信息,可以scala foldLeft example
在 google 中搜索。
所以,祝你好运。
df.schema.fieldNames.map(_.toUpperCase).filter(x => !x.contains("")).foldLeft(df)((a,b) => {
a.withColumnRenamed(b, ("abc_" + b).toLowerCase() )
})
推荐阅读
- node.js - nodejs中的Orbitdb + IPFS
- html - html中png img的问题
- vue.js - Vue - 当没有输入焦点时在模糊上执行方法
- reactjs - 即使 wrapper.debug() 显示它,也无法在玩笑中找到元素
- svg - SVG - 如何在具有 rgba 填充的路径上放置嵌入阴影?
- c++ - MPI:检查是否有进程被终止
- sql-server - 动态 WHERE 条件 SQL SERVER
- c# - WPF 网格行高自动,最大星号 (*)
- variables - 使用 NCO 从巨大的 netcdf MARS3D 文件中提取变量
- coinbase-api - Coinbase 的官方 Python API 被标记为已弃用