From cac8dc69b1df3447f7daf11684004936f52ddc7b Mon Sep 17 00:00:00 2001 From: Wenchen Fan Date: Fri, 30 Jun 2017 20:26:20 +0800 Subject: [PATCH] use pattern match --- .../spark/sql/catalyst/InternalRow.scala | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/InternalRow.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/InternalRow.scala index cd6c45c74e6a5..29110640d64f2 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/InternalRow.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/InternalRow.scala @@ -112,17 +112,11 @@ object InternalRow { /** * Copies the given value if it's string/struct/array/map type. */ - def copyValue(value: Any): Any = { - if (value.isInstanceOf[UTF8String]) { - value.asInstanceOf[UTF8String].copy() - } else if (value.isInstanceOf[InternalRow]) { - value.asInstanceOf[InternalRow].copy() - } else if (value.isInstanceOf[ArrayData]) { - value.asInstanceOf[ArrayData].copy() - } else if (value.isInstanceOf[MapData]) { - value.asInstanceOf[MapData].copy() - } else { - value - } + def copyValue(value: Any): Any = value match { + case v: UTF8String => v.copy() + case v: InternalRow => v.copy() + case v: ArrayData => v.copy() + case v: MapData => v.copy() + case _ => value } }