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
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
CachingMappingRetriever(retriever: Retriever, mapFn: (Key, Payload) ⇒ T, filter: CacheFilter = CachingMappingRetriever.noFilter, factory: CacheFactory[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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @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
filter
returnsfalse
for 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
filter
returnsfalse
for 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
- @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
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()