Каким будет эквивалент scala следующего кода на python? - PullRequest
0 голосов
/ 29 апреля 2018
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, текст - имя столбца, над которым я работаю.

1 Ответ

0 голосов
/ 29 апреля 2018

Кажется, у вас есть text столбец в вашем dataframe, и вы пытаетесь split текст в этом столбце , а затем filter слова с @ знак в начале и наконец replace @ знак с пустым символом .

Если мое понимание верно, то следующим может быть эквивалентный код в 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("@", ""))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...