You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by rx...@apache.org on 2014/11/15 08:44:29 UTC
spark git commit: Added contains(key) to Metadata
Repository: spark
Updated Branches:
refs/heads/master 60969b033 -> cbddac236
Added contains(key) to Metadata
Add contains(key) to org.apache.spark.sql.catalyst.util.Metadata to test the existence of a key. Otherwise, Class Metadata's get methods may throw NoSuchElement exception if the key does not exist.
Testcases are added to MetadataSuite as well.
Author: kai <ka...@eecs.berkeley.edu>
Closes #3273 from kai-zeng/metadata-fix and squashes the following commits:
74b3d03 [kai] Added contains(key) to Metadata
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/cbddac23
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/cbddac23
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/cbddac23
Branch: refs/heads/master
Commit: cbddac23696d89b672dce380cc7360a873e27b3b
Parents: 60969b0
Author: kai <ka...@eecs.berkeley.edu>
Authored: Fri Nov 14 23:44:23 2014 -0800
Committer: Reynold Xin <rx...@databricks.com>
Committed: Fri Nov 14 23:44:23 2014 -0800
----------------------------------------------------------------------
.../org/apache/spark/sql/catalyst/util/Metadata.scala | 3 +++
.../apache/spark/sql/catalyst/util/MetadataSuite.scala | 13 +++++++++++++
2 files changed, 16 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/cbddac23/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/Metadata.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/Metadata.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/Metadata.scala
old mode 100644
new mode 100755
index 2f2082f..8172733
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/Metadata.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/Metadata.scala
@@ -34,6 +34,9 @@ import org.json4s.jackson.JsonMethods._
*/
sealed class Metadata private[util] (private[util] val map: Map[String, Any]) extends Serializable {
+ /** Tests whether this Metadata contains a binding for a key. */
+ def contains(key: String): Boolean = map.contains(key)
+
/** Gets a Long. */
def getLong(key: String): Long = get(key)
http://git-wip-us.apache.org/repos/asf/spark/blob/cbddac23/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/MetadataSuite.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/MetadataSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/MetadataSuite.scala
old mode 100644
new mode 100755
index 0063d31..f005b7d
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/MetadataSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/MetadataSuite.scala
@@ -56,17 +56,30 @@ class MetadataSuite extends FunSuite {
.build()
test("metadata builder and getters") {
+ assert(age.contains("summary") === false)
+ assert(age.contains("index") === true)
assert(age.getLong("index") === 1L)
+ assert(age.contains("average") === true)
assert(age.getDouble("average") === 45.0)
+ assert(age.contains("categorical") === true)
assert(age.getBoolean("categorical") === false)
+ assert(age.contains("name") === true)
assert(age.getString("name") === "age")
+ assert(metadata.contains("purpose") === true)
assert(metadata.getString("purpose") === "ml")
+ assert(metadata.contains("isBase") === true)
assert(metadata.getBoolean("isBase") === false)
+ assert(metadata.contains("summary") === true)
assert(metadata.getMetadata("summary") === summary)
+ assert(metadata.contains("long[]") === true)
assert(metadata.getLongArray("long[]").toSeq === Seq(0L, 1L))
+ assert(metadata.contains("double[]") === true)
assert(metadata.getDoubleArray("double[]").toSeq === Seq(3.0, 4.0))
+ assert(metadata.contains("boolean[]") === true)
assert(metadata.getBooleanArray("boolean[]").toSeq === Seq(true, false))
+ assert(gender.contains("categories") === true)
assert(gender.getStringArray("categories").toSeq === Seq("male", "female"))
+ assert(metadata.contains("features") === true)
assert(metadata.getMetadataArray("features").toSeq === Seq(age, gender))
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org