请稍等 ...
×

采纳答案成功!

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

为什么显示cannot resolve symbol when

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

// Scala:
people.select(when(people("gender") === "male", 0)
  .when(people("gender") === "female", 1)
  .otherwise(2))
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
您的移动学习伙伴

公众号

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