com.here.platform.data.processing.blobstore.caching
CachingMappingRetriever
Companion object CachingMappingRetriever
class CachingMappingRetriever[T <: AnyRef] extends Serializable with ContextLogging
A wrapper for the Retriever class, that applies a mapping function on the retrieved payloads and caches the resulting values.
- T
The type of the decoded payload, after applying the mapping function.
- Note
A CachingMappingRetriever can be only created from the Spark driver. If a CachingMappingRetriever is created from inside a Spark worker node, an exception is thrown.
- Alphabetic
- By Inheritance
- CachingMappingRetriever
- ContextLogging
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new CachingMappingRetriever(retriever: Retriever, mapFn: (Key, Payload) => T, filter: CacheFilter = CachingMappingRetriever.noFilter, factory: CacheFactory[T] = GuavaCache.cacheFactory[(Key, Meta), T](), statistics: Option[Statistics] = None)
- retriever
The wrapped Retriever.
- mapFn
A decoding function applied to the retrieved payloads and their keys.
- filter
A predicate used to cache only the partitions for which the predicate returns
true. If not specified, all partitions are cached.- factory
A functions that returns a com.here.platform.data.processing.utils.cache.Cache. If not specified com.here.platform.data.processing.utils.cache.GuavaCache.cacheFactory is used.
- statistics
An optional com.here.platform.data.processing.statistics.Statistics object. If defined, statistics about the number of cache requests and misses are recorded.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def classForLogger: Class[_]
Override this to change the class that is displayed in logs.
Override this to change the class that is displayed in logs.
- Attributes
- protected
- Definition Classes
- ContextLogging
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getPayloadAndMap(key: Key, meta: Meta, file: File): T
Returns the decoded value associated with the key-meta pair in this cache.
Returns the decoded value associated with the key-meta pair in this cache. If the value is not cached, it is retrieved with the wrapped retriever and decoded with the mapping function. If
filterreturnsfalsefor the key-meta pair, the cache is not used. This version uses a file to store the content of the payload when a miss occurs. The transformed payload is still stored in memory though.- key
The partition key.
- meta
The partition metadata.
- file
The file where the retrieved payload must be stored.
- returns
The decoded payload.
- Note
In case of a cache hit, the file is not created or written. It's the caller's responsibility to delete the file when it's no longer needed.
- def getPayloadAndMap(key: Key, meta: Meta): T
Returns the decoded value associated with the key-meta pair in this cache.
Returns the decoded value associated with the key-meta pair in this cache. If the value is not cached, it is retrieved with the wrapped retriever and decoded with the mapping function. If
filterreturnsfalsefor the key-meta pair, the cache is not used.- key
The partition key.
- meta
The partition metadata.
- returns
The decoded payload.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final lazy val logger: ContextAwareLogger
The logger to use for normal and context-aware messages.
The logger to use for normal and context-aware messages.
- Attributes
- protected
- Definition Classes
- ContextLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)