scala - 以下python代码的scala等价物是什么?
问题描述
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 是我正在处理的列的名称。
解决方案
似乎您的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("@", ""))
推荐阅读
- mysql - 列出从 MySQL 服务器记录和访问查询、延迟和返回的数据大小信息的所有方式?
- sql - SQL 在两个条件行之间选择行
- php - PHP:用值计算输入类型
- python - 图片不合适
- java - 密钥库不识别证书
- python - 有谁知道在 Jupyter Notebook 上显示单元格执行的挂钟时间(即 21:15:00)的任何魔术命令?
- catboost - CatBoostClassifier 升级到 0.21 版本后出现网格搜索错误
- php - laravel mb_strpos() 期望参数 1 是字符串,给定对象
- kubernetes - 云集群中使用本地持久卷的 CrashLoopBackOff pod
- c - 使用宏测试C中的函数返回值