Hi Michael,

The storage tab shows the RDD resides fully in memory (10 partitions) with
zero disk usage. Tasks for subsequent select on this table in cache shows
minimal overheads (GC, queueing, shuffle write etc. etc.), so overhead is
not issue. However, it is still twice as slow as reading uncached table.

I have spark.rdd.compress = true, spark.sql.inMemoryColumnarStorage.compressed
= true, spark.serializer = org.apache.spark.serializer.KryoSerializer

Something that may be of relevance ...

The underlying table is Parquet, 10 partitions totaling ~350 MB. For
mapPartition phase of query on uncached table shows input size of 351 MB.
However, after the table is cached, the storage shows the cache size as
12GB. So the in-memory representation seems much bigger than on-disk, even
with the compression options turned on. Any thoughts on this ?

mapPartition phase same query for cache table shows input size of 12GB
(full size of cache table) and takes twice the time as mapPartition for
uncached query.

Thanks,






On Fri, Feb 6, 2015 at 6:47 PM, Michael Armbrust <mich...@databricks.com>
wrote:

> Check the storage tab.  Does the table actually fit in memory? Otherwise
> you are rebuilding column buffers in addition to reading the data off of
> the disk.
>
> On Fri, Feb 6, 2015 at 4:39 PM, Manoj Samel <manojsamelt...@gmail.com>
> wrote:
>
>> Spark 1.2
>>
>> Data stored in parquet table (large number of rows)
>>
>> Test 1
>>
>> select a, sum(b), sum(c) from table
>>
>> Test
>>
>> sqlContext.cacheTable()
>> select a, sum(b), sum(c) from table  - "seed cache" First time slow since
>> loading cache ?
>> select a, sum(b), sum(c) from table  - Second time it should be faster as
>> it should be reading from cache, not HDFS. But it is slower than test1
>>
>> Any thoughts? Should a different query be used to seed cache ?
>>
>> Thanks,
>>
>>
>

Reply via email to