You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by hv...@apache.org on 2018/04/18 22:05:52 UTC
spark git commit: [SPARK-23875][SQL][FOLLOWUP] Add IndexedSeq wrapper
for ArrayData
Repository: spark
Updated Branches:
refs/heads/master f09a9e941 -> a9066478f
[SPARK-23875][SQL][FOLLOWUP] Add IndexedSeq wrapper for ArrayData
## What changes were proposed in this pull request?
Use specified accessor in `ArrayData.foreach` and `toArray`.
## How was this patch tested?
Existing tests.
Author: Liang-Chi Hsieh <vi...@gmail.com>
Closes #21099 from viirya/SPARK-23875-followup.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/a9066478
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/a9066478
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/a9066478
Branch: refs/heads/master
Commit: a9066478f6d98c3ae634c3bb9b09ee20bd60e111
Parents: f09a9e9
Author: Liang-Chi Hsieh <vi...@gmail.com>
Authored: Thu Apr 19 00:05:47 2018 +0200
Committer: Herman van Hovell <hv...@databricks.com>
Committed: Thu Apr 19 00:05:47 2018 +0200
----------------------------------------------------------------------
.../scala/org/apache/spark/sql/catalyst/util/ArrayData.scala | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/a9066478/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/ArrayData.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/ArrayData.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/ArrayData.scala
index 2cf59d5..104b428 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/ArrayData.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/ArrayData.scala
@@ -141,28 +141,29 @@ abstract class ArrayData extends SpecializedGetters with Serializable {
def toArray[T: ClassTag](elementType: DataType): Array[T] = {
val size = numElements()
+ val accessor = InternalRow.getAccessor(elementType)
val values = new Array[T](size)
var i = 0
while (i < size) {
if (isNullAt(i)) {
values(i) = null.asInstanceOf[T]
} else {
- values(i) = get(i, elementType).asInstanceOf[T]
+ values(i) = accessor(this, i).asInstanceOf[T]
}
i += 1
}
values
}
- // todo: specialize this.
def foreach(elementType: DataType, f: (Int, Any) => Unit): Unit = {
val size = numElements()
+ val accessor = InternalRow.getAccessor(elementType)
var i = 0
while (i < size) {
if (isNullAt(i)) {
f(i, null)
} else {
- f(i, get(i, elementType))
+ f(i, accessor(this, i))
}
i += 1
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org