[ https://issues.apache.org/jira/browse/SPARK-12526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Apache Spark reassigned SPARK-12526: ------------------------------------ Assignee: (was: Apache Spark) > `ifelse`, `when`, `otherwise` unable to take Column as value > ------------------------------------------------------------ > > Key: SPARK-12526 > URL: https://issues.apache.org/jira/browse/SPARK-12526 > Project: Spark > Issue Type: Bug > Components: SparkR > Affects Versions: 1.5.2, 1.6.0 > Reporter: Sen Fang > > When passing a Column to {{ifelse}}, {{when}}, {{otherwise}}, it will error > out with > {code} > attempt to replicate an object of type 'environment' > {code} > The problems lies in the use of base R {{ifelse}} function, which is > vectorized version of {{if ... else ...}} idiom, but it is unable to > replicate a Column's job id as it is an environment. > Considering {{callJMethod}} was never designed to be vectorized, the safe > option is to replace {{ifelse}} with {{if ... else ...}} instead. However > technically this is inconsistent to base R's ifelse, which is meant to be > vectorized. > I can send a PR for review first and discuss further if there is scenario at > all when `ifelse`, `when`, `otherwise` would be used vectorizedly. > A dummy example is: > {code} > ifelse(lit(1) == lit(1), lit(2), lit(3)) > {code} > A concrete example might be: > {code} > ifelse(df$mpg > 0, df$mpg, 0) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org