men = data.flatMap(lambda x :x['text'].split(" ")) \
.filter(lambda x: len(x.strip()) > 1) \
.filter(lambda x : x[0] == '@') \
.map(lambda x:x.replace('@',''))
我试过,但我无法解决。
var men=df.map((df.select("text"))
.split(" ")).filter(x => (x.strip()).length()>1)
.filter(x=>x(0)=="@")
.map(x=>x.replace("@",""))
:35:错误:值拆分不是org.apache.spark.sql.DataFrame的成员
这里df是我的DataFrame,text是我正在处理的列的名称。
答案 0 :(得分:1)
您text
似乎有dataframe
列,并且您正试图split
该列中的文字,然后filter
单词 @ 在开头签名,最后replace
@签署空char 。
如果我的理解是正确的,那么以下可以是scala中的等效代码
var men=df.rdd.flatMap(x => x.getAs[String]("text").split(" "))
.filter(x => x.trim.length > 1)
.filter(x => x.startsWith("@"))
.map(x => x.replace("@", ""))