如果列表中存在,则从列中删除单词-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如果列表中存在,则从列中删除单词

2018-12-12 14:01:53 1407 1

我有一个带有'text'列的数据框,其中有许多行包含英文句子。

文本

It is evening
Good morning
Hello everyone
What is your name
I'll see you tomorrow
我有一个List类型的变量,它有一些单词,如

val removeList = List("Hello", "evening", "because", "is")
我想删除removeList中存在的列文本中的所有单词。

所以我的输出应该是

It
Good morning
everyone
What your name
I'll see you tomorrow
如何使用Spark Scala执行此操作。

我写了一个像这样的代码:

val stopWordsList = List("Hello", "evening", "because", "is");
val df3 = sqlContext.sql("SELECT text FROM table");
val df4 = df3.map(x => cleanText(x.mkString, stopWordsList));

def cleanText(x:String, stopWordsList:List[String]):Any = {
for(str <- stopWordsList) {

if(x.contains(str)) {
  x.replaceAll(str, "")
}

}
}
但我收到了错误

Error:(44, 12) Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.
val df4 = df3.map(x => cleanText(x.mkString, stopWordsList));

Error:(44, 12) not enough arguments for method map: (implicit evidence$6: org.apache.spark.sql.Encoder[String])org.apache.spark.sql.Dataset[String].
未指定的值参数证据$ 6。val df4 = df3.map(x => cleanText(x.mkString,stopWordsList));

取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:20:09

    检查这个df和rdd方式。

    val df = Seq(("It is evening"),("Good morning"),("Hello everyone"),("What is your name"),("I'll see you tomorrow")).toDF("data")
    val removeList = List("Hello", "evening", "because", "is")
    val rdd2 = df.rdd.map{ x=> {val p = x.getAsString ; val k = removeList.foldLeft(p) ( (p,t) => p.replaceAll("\b"+t+"\b","") ) ; Row(x(0),k) } }
    spark.createDataFrame(rdd2, df.schema.add(StructField("new1",StringType))).show(false)
    输出:

    data new1
    It is evening It
    Good morning Good morning
    Hello everyone everyone
    What is your name What your name
    I'll see you tomorrow I'll see you tomorrow
    0 0
相关问答

1

回答

python从列表中删除一个切割的命令是什么呢?

2021-11-02 17:14:43 272浏览量 回答数 1

0

回答

在Java中,可以在循环列表内对于判断条件有复杂的形式吗,如果可以,为什么,如果可以,为什么?

2021-11-04 20:45:59 212浏览量 回答数 0

1

回答

python中列表和元组的不同点有哪些呀?

2021-11-06 22:32:12 818浏览量 回答数 1

1

回答

Python列表方法list.count(obj)的作用是什么?

2021-11-04 22:55:35 119浏览量 回答数 1

1

回答

内联列表以在python MySQLDB IN子句中使用

2020-05-11 10:46:57 258浏览量 回答数 1

1

回答

有什么方法可以更有效地检查单词中的所有字母是否都在列表中?

2020-03-24 15:52:10 260浏览量 回答数 1

0

回答

查看RDS实例列表

2017-10-18 17:32:35 1481浏览量 回答数 0

1

回答

java链表算法题中把链表已被删除结点置空的问题

2016-02-26 17:49:57 2198浏览量 回答数 1

0

回答

IOS获取Object列表问题

2015-11-06 10:11:53 4211浏览量 回答数 0

2

回答

oss关于object列表的问题

2013-12-23 16:56:39 6598浏览量 回答数 2
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载