GitHub user HyukjinKwon opened a pull request: https://github.com/apache/spark/pull/21130
[SPARK-24054][R] Add array_position function / element_at functions ## What changes were proposed in this pull request? This PR proposes to add array_position and element_at in R side too. array_position: ```r df <- createDataFrame(cbind(model = rownames(mtcars), mtcars)) mutated <- mutate(df, v1 = create_array(df$gear, df$am, df$carb)) head(select(mutated, array_position(mutated$v1, 1))) ``` ``` array_position(v1, 1.0) 1 2 2 2 3 2 4 3 5 0 6 3 ``` element_at: ```r df <- createDataFrame(cbind(model = rownames(mtcars), mtcars)) mutated <- mutate(df, v1 = create_array(df$mpg, df$cyl, df$hp)) head(select(mutated, element_at(mutated$v1, 1))) ``` ``` element_at(v1, 1.0) 1 21.0 2 21.0 3 22.8 4 21.4 5 18.7 6 18.1 ``` ```r df <- createDataFrame(cbind(model = rownames(mtcars), mtcars)) mutated <- mutate(df, v3 = create_map(df$model, df$cyl)) head(select(mutated, element_at(mutated$v3, "Valiant"))) ``` ``` element_at(v3, Valiant) 1 NA 2 NA 3 NA 4 NA 5 NA 6 6 ``` ## How was this patch tested? Unit tests were added in `R/pkg/tests/fulltests/test_sparkSQL.R` and manually tested. Documentation was manually built and verified. You can merge this pull request into a Git repository by running: $ git pull https://github.com/HyukjinKwon/spark sparkr_array_position_element_at Alternatively you can review and apply these changes as the patch at: https://github.com/apache/spark/pull/21130.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #21130 ---- commit 443034ac3180ea3f18f692040e7be4e6ca11553b Author: hyukjinkwon <gurwls223@...> Date: 2018-04-23T14:11:59Z Add array_position function / element_at functions ---- --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org