You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Andrew Or (JIRA)" <ji...@apache.org> on 2016/06/24 21:16:16 UTC
[jira] [Created] (SPARK-16196) Optimize in-memory scan performance
using ColumnarBatches
Andrew Or created SPARK-16196:
---------------------------------
Summary: Optimize in-memory scan performance using ColumnarBatches
Key: SPARK-16196
URL: https://issues.apache.org/jira/browse/SPARK-16196
Project: Spark
Issue Type: Bug
Components: SQL
Affects Versions: 2.0.0
Reporter: Andrew Or
Assignee: Andrew Or
A simple benchmark such as the following reveals inefficiencies in the existing in-memory scan implementation:
{code}
spark.range(N)
.selectExpr("id", "floor(rand() * 10000) as k")
.createOrReplaceTempView("test")
val ds = spark.sql("select count(k), count(id) from test").cache()
ds.collect()
ds.collect()
{code}
There are many reasons why caching is slow. The biggest is that compression takes a long time. The second is that there are a lot of virtual function calls in this hot code path since the rows are processed using iterators. Further, the rows are converted to and from ByteBuffers, which are slow to read in general.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org