以下python代码的scala等价物是什么?

时间:2018-04-29 16:14:32

标签: scala apache-spark pyspark

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是我正在处理的列的名称。

1 个答案:

答案 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("@", ""))