def _spark_calc_op_on_chunks(bucket, data, operators_list):
    """
    Calculate operators on chunk of data
    return None if no data provided

    :param bucket: bucket number
    :type bucket: int

    :param data: timeseries data
    :type data: 2-d array

    :param operators_list: list of operators calculated on data
    :type operators_list: list

    :return:tuple of (bucket number, result dict of calculated operators on chunk - Keys are operators.)
    :rtype: tuple (int, dict)
    """
    result = {}

    # number of points processed
    nb_points = len(data)
    result['NB_POINTS'] = nb_points

    # keep only values
    values = data[:, 1]

    if values.size:
        for operator in operators_list:
            if operator == 'MIN':
                result['MIN'] = min(values)
            if operator == 'MAX':
                result['MAX'] = max(values)
            if operator == 'AVG' or operator == 'STD':
                result['SUM'] = sum(values)
            if operator == 'STD':
                result['SQR_SUM'] = sum([x ** 2 for x in values])
    else:
        return None

    return bucket, result