请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么显示cannot resolve symbol when

1
val tmp1 = trainDF1.withColumn("Sex", when(trainDF1("Sex") === "female",0).when(trainDF1("Sex") === "male",1))

我用idea开发的时候,将Sex列中的性别用01标识,但是说when不识别,这是什么情况呢?

api文档中的例子也不行

https://img1.sycdn.imooc.com/szimg//5978464300015f1711250246.jpg

1
2
3
4
// Scala:
people.select(when(people("gender") === "male", 0)
  .when(people("gender") === "female", 1)
  .otherwise(2))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.imooc.ml
 
import org.apache.spark.sql.SparkSession
 
/**
  * Created by bacon on 2017/7/21.
  */
object Titanic {
 
  def main(args: Array[String]) {
    System.setProperty("hadoop.home.dir""C:\\Users\\bacon\\winutils")
 
    val spark = SparkSession.builder().appName("SparkSession").master("local[2]").getOrCreate()
 
    val dataDF = spark.read.option("header","true").option("inferSchema","true").csv("D:\\learn\\BD\\ML\\data\\Titanic\\train.csv")
 
    val trainDF1 = dataDF.select("Survived","Pclass","Sex","Age","SibSp","Parch","Fare","Embarked")
    
    // 将female设为0,male设为1
    val tmp1 = trainDF1.withColumn("Sex", when(trainDF1("Sex") === "female",0).when(trainDF1("Sex") === "male",1))
 
    spark.stop()
 
  }
 
}


正在回答

插入代码

1回答

Michael_PK 2017-07-26 14:17:14

我没记错的话when的第一个参数应该是个column类型

0 回复 有任何疑惑可以回复我~
  • 提问者 BaconNUDT #1
    老师,这句话在Linux上面跑的时候没毛病,但是在Idea里面就不识别when,我是Win 10 系统
    回复 有任何疑惑可以回复我~ 2017-07-26 14:50:55
  • Michael_PK 回复 提问者 BaconNUDT #2
    你全部代码贴出来看看,idea中的
    回复 有任何疑惑可以回复我~ 2017-07-26 14:55:44
  • 提问者 BaconNUDT 回复 Michael_PK #3
    贴上来了,老师
    回复 有任何疑惑可以回复我~ 2017-07-26 14:59:11
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号