EntityUpdateDataCSV
SingleEntityUpdateDataCSV
SingleEntityUpdateDataCSV(entity_class: str, filename: str, **kwargs)
Bases: CSVParser
ApertureDB General CSV Parser for Adding and Updating Properties in an Entity
Update an Entity to the data in the CSV What this means is: - If it doesn't exist, add it. - If it exists, update the properties.
This class utilizes 2 conditionals - normal constraint_ to select the element - a series of updateif_ to determine if an update is necessary
Conditionals: updateif>_prop : updates if the database value greater than csv value updateif<_prop : updates if the database value less than csv value updateif!_prop : updates if the database value is not equal to csv value
Note
Is backed by a CSV file with the following columns (format optional):
``filename``, ``PROP_NAME_1``, ... ``PROP_NAME_N``, ``constraint_PROP1``, ``format``
OR
``url``, ``PROP_NAME_1``, ... ``PROP_NAME_N``, ``constraint_PROP1``, ``format``
OR
``s3_url``, ``PROP_NAME_1``, ... ``PROP_NAME_N``, ``constraint_PROP1``, ``format``
OR
``gs_url``, ``PROP_NAME_1``, ... ``PROP_NAME_N``, ``constraint_PROP1``, ``format``
..
Example CSV file::
filename,id,label,constraint_id,format,dataset_ver,updateif>_dataset_ver,gen_blobsha1_sha
/home/user/file1.jpg,321423532,dog,321423532,jpg,2,2,
/home/user/file2.jpg,42342522,cat,42342522,png,2,2,
...
Example usage:
data = ImageForceNewestDataCSV("/path/to/ImageData.csv")
loader = ParallelLoader(client)
loader.ingest(data)
Info
In the above example, the constraint_id ensures that an Image with the specified id would be only inserted if it does not already exist in the database.