scala - 数据框过滤掉包含指定单词的行(字符串)
问题描述
这是我在 Scala 中的问题。我有一个数据框,其中一列的数据类型为字符串。例如,该列有 4 个值
"Abc", "dfea", "skjod", "aaa"
还有一个
List = ["ab", "kj"]
我需要过滤掉列表中包含任何值的行。所以,对于上面的数据,我会得到第二行和第四行。
这是我的代码:
val del_blk = (arg: String) => {
for (word <- list) {
if (arg.contains(word)) 1
}
0
}
val blkUDF = udf(del_blk)
df
.withColumn("blk", blkUDF(col("col")))
.filter(col("blk") === 0)
.select("col")
.show()
解决方案
val del_blk = (arg: String) => {
for (word <- list) {
if (arg.contains(word)) 1
}
0
}
相当于
val del_blk = (arg: String) => {
list.foreach(word => if (arg.contains(word)) 1)
0
}
我怀疑你宁愿打算像
def containsForbiddenWord(word: String): Boolean =
list.exists(forbidden => word.contains(forbidden))
推荐阅读
- winapi - Direct2D 在“硬件模式”渲染目标上不绘制任何内容
- twilio - 将参数传递给 webhook
- android - Android webView:不断检查互联网连接,直到加载HTML
- javascript - 设置 `multiple` 时,出现错误 Dropdown`value` 必须是一个数组。接收类型:`[object String]`
- javascript - 可重用的 Vue.js Ajax 方法。传递 Vue 数据数组名称作为参数。如何?
- reactjs - jest 中的 jest.fn() 和 jest.spyOn() 方法有什么区别?
- python - 在python中定义子类时如何避免重复self?
- vue.js - 上传图片时附加文本区域(描述)
- c - 无法让 gcov 生成任何覆盖率数据
- python - 我有一系列字典,我想在 django 中使用它们。我怎么做?