kedro.extras.datasets.redis.PickleDataSet¶
-
class
kedro.extras.datasets.redis.PickleDataSet(key, backend='pickle', load_args=None, save_args=None, credentials=None, redis_args=None)[source]¶ PickleDataSetloads/saves data from/to a Redis database. The underlying functionality is supported by the redis library, so it supports all allowed options for instantiating the redis appfrom_urland setting a value.Example adding a catalog entry with YAML API:
my_python_object: # simple example type: redis.PickleDataSet key: my_object from_url_args: url: redis://127.0.0.1:6379 final_python_object: # example with save args type: redis.PickleDataSet key: my_final_object from_url_args: url: redis://127.0.0.1:6379 db: 1 save_args: ex: 10
Example using Python API:
from kedro.extras.datasets.redis import PickleDataSet data = pd.DataFrame({'col1': [1, 2], 'col2': [4, 5], 'col3': [5, 6]}) my_data = PickleDataSet(key="my_data") my_data.save(data) reloaded = my_data.load() assert data.equals(reloaded)
Attributes
Methods
exists()Checks whether a data set’s output already exists by calling the provided _exists() method.
from_config(name, config[, load_version, …])Create a data set instance using the configuration provided.
load()Loads data by delegation to the provided load method.
release()Release any cached data.
save(data)Saves data by delegation to the provided save method.
-
DEFAULT_LOAD_ARGS: Dict[str, Any] = {}¶
-
DEFAULT_REDIS_URL= 'redis://127.0.0.1:6379'¶
-
DEFAULT_SAVE_ARGS: Dict[str, Any] = {}¶
-
__init__(key, backend='pickle', load_args=None, save_args=None, credentials=None, redis_args=None)[source]¶ Creates a new instance of PickleDataSet. This loads/saves data from/to a Redis database while deserializing/serializing. Supports custom backends to serialize/deserialize objects.
- Example backends that are compatible (non-exhaustive):
pickle
dill
compress_pickle
- Example backends that are incompatible:
torch
- Parameters
key (
str) – The key to use for saving/loading object to Redis.backend (
str) – Backend to use, must be an import path to a module which satisfies thepickleinterface. That is, contains a loads and dumps function. Defaults to ‘pickle’.load_args (
Optional[Dict[str,Any]]) – Pickle options for loading pickle files. You can pass in arguments that the backend load function specified accepts, e.g: pickle.loads: https://docs.python.org/3/library/pickle.html#pickle.loads dill.loads: https://dill.readthedocs.io/en/latest/dill.html#dill._dill.loads compress_pickle.loads: https://lucianopaz.github.io/compress_pickle/html/api/compress_pickle.html#compress_pickle.compress_pickle.loads All defaults are preserved.save_args (
Optional[Dict[str,Any]]) – Pickle options for saving pickle files. You can pass in arguments that the backend dump function specified accepts, e.g: pickle.dumps: https://docs.python.org/3/library/pickle.html#pickle.dump dill.dumps: https://dill.readthedocs.io/en/latest/dill.html#dill._dill.dumps compress_pickle.dumps: https://lucianopaz.github.io/compress_pickle/html/api/compress_pickle.html#compress_pickle.compress_pickle.dumps All defaults are preserved.credentials (
Optional[Dict[str,Any]]) – Credentials required to get access to the redis server. E.g. {“password”: None}.redis_args (
Optional[Dict[str,Any]]) – Extra arguments to pass into the redis client constructorredis.StrictRedis.from_url. (e.g. {“socket_timeout”: 10}), as well as to pass to theredis.StrictRedis.setthrough nested keys from_url_args and set_args. Here you can find all available arguments for from_url: https://redis-py.readthedocs.io/en/stable/connections.html?highlight=from_url#redis.Redis.from_url All defaults are preserved, except url, which is set to redis://127.0.0.1:6379. You could also specify the url through the env variableREDIS_URL.
- Raises
ValueError – If
backenddoes not satisfy the pickle interface.ImportError – If the
backendmodule could not be imported.
-
exists()¶ Checks whether a data set’s output already exists by calling the provided _exists() method.
- Return type
bool- Returns
Flag indicating whether the output already exists.
- Raises
DataSetError – when underlying exists method raises error.
-
classmethod
from_config(name, config, load_version=None, save_version=None)¶ Create a data set instance using the configuration provided.
- Parameters
name (
str) – Data set name.config (
Dict[str,Any]) – Data set config dictionary.load_version (
Optional[str]) – Version string to be used forloadoperation if the data set is versioned. Has no effect on the data set if versioning was not enabled.save_version (
Optional[str]) – Version string to be used forsaveoperation if the data set is versioned. Has no effect on the data set if versioning was not enabled.
- Return type
AbstractDataSet- Returns
An instance of an
AbstractDataSetsubclass.- Raises
DataSetError – When the function fails to create the data set from its config.
-
load()¶ Loads data by delegation to the provided load method.
- Return type
Any- Returns
Data returned by the provided load method.
- Raises
DataSetError – When underlying load method raises error.
-
release()¶ Release any cached data.
- Raises
DataSetError – when underlying release method raises error.
- Return type
None
-
save(data)¶ Saves data by delegation to the provided save method.
- Parameters
data (
Any) – the value to be saved by provided save method.- Raises
DataSetError – when underlying save method raises error.
FileNotFoundError – when save method got file instead of dir, on Windows.
NotADirectoryError – when save method got file instead of dir, on Unix.
- Return type
None
-