aboutsummaryrefslogtreecommitdiff
path: root/sql/core
diff options
context:
space:
mode:
authorDongjoon Hyun <dongjoon@apache.org>2016-07-03 16:59:40 +0800
committerWenchen Fan <wenchen@databricks.com>2016-07-03 16:59:40 +0800
commit54b27c1797fcd32b3f3e9d44e1a149ae396a61e6 (patch)
tree9d00060aa80e539659bbb8d202bfcddf628c885c /sql/core
parentea990f96930066c36055734d4f17eaf8e496eb3f (diff)
downloadspark-54b27c1797fcd32b3f3e9d44e1a149ae396a61e6.tar.gz
spark-54b27c1797fcd32b3f3e9d44e1a149ae396a61e6.tar.bz2
spark-54b27c1797fcd32b3f3e9d44e1a149ae396a61e6.zip
[SPARK-16278][SPARK-16279][SQL] Implement map_keys/map_values SQL functions
## What changes were proposed in this pull request? This PR adds `map_keys` and `map_values` SQL functions in order to remove Hive fallback. ## How was this patch tested? Pass the Jenkins tests including new testcases. Author: Dongjoon Hyun <dongjoon@apache.org> Closes #13967 from dongjoon-hyun/SPARK-16278.
Diffstat (limited to 'sql/core')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
index 73d77651a0..0f6c49e759 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
@@ -352,6 +352,22 @@ class DataFrameFunctionsSuite extends QueryTest with SharedSQLContext {
)
}
+ test("map_keys/map_values function") {
+ val df = Seq(
+ (Map[Int, Int](1 -> 100, 2 -> 200), "x"),
+ (Map[Int, Int](), "y"),
+ (Map[Int, Int](1 -> 100, 2 -> 200, 3 -> 300), "z")
+ ).toDF("a", "b")
+ checkAnswer(
+ df.selectExpr("map_keys(a)"),
+ Seq(Row(Seq(1, 2)), Row(Seq.empty), Row(Seq(1, 2, 3)))
+ )
+ checkAnswer(
+ df.selectExpr("map_values(a)"),
+ Seq(Row(Seq(100, 200)), Row(Seq.empty), Row(Seq(100, 200, 300)))
+ )
+ }
+
test("array contains function") {
val df = Seq(
(Seq[Int](1, 2), "x"),