<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _persist(source, path, component=None, storage_options=None, **kwargs):
 """Save array to local persistent store Makes a parquet dataset out of the data using zarr. This then becomes a data entry in the persisted datasets catalog. Only works locally for the moment. Parameters source: a DataSource instance to save name: str or None Key to refer to this persisted dataset by. If not given, will attempt to get from the source's name kwargs: passed on to zarr array creation, see """

        from dask.array import to_zarr, from_array
        from ..source.zarr import ZarrArraySource
        try:
            arr = source.to_dask()
        except NotImplementedError:
            arr = from_array(source.read(), chunks=-1).rechunk('auto')
        to_zarr(arr, path, component=None,
                storage_options=storage_options, **kwargs)

        source = ZarrArraySource(path, storage_options, component)
        return source