DataBrewery / cubes

[NOT MAINTAINED] Light-weight Python OLAP framework for multi-dimensional data analysis
http://cubes.databrewery.org
Other
1.49k stars 314 forks source link

AttributeError: 'module' object has no attribute '_QuantilesCombinerSpec' #463

Closed dpoulopoulos closed 6 years ago

dpoulopoulos commented 6 years ago

Taxi example gives this error:

AttributeError                            Traceback (most recent call last)
<ipython-input-8-cd13ad158f35> in <module>()
      4              'company', 'trip_seconds', 'dropoff_community_area', 'tips']
      5 
----> 6 compute_stats('data/data.csv', 'stats/stats.tfrecord', col_names)

<ipython-input-7-9b31bb049669> in compute_stats(input_path, stats_path, column_names, pipeline_args)
     14 
     15         _ = (raw_data | 'GenerateStatistics' >> tfdv.GenerateStatistics()
---> 16                       | 'WriteStatsOutput' >> beam.io.WriteToTFRecord(stats_path, shard_name_template='',
     17                                                                       coder=beam.coders.ProtoCoder(
     18                                                                           statistics_pb2.DatasetFeatureStatisticsList)))

/usr/local/lib/python2.7/dist-packages/apache_beam/pvalue.pyc in __or__(self, ptransform)
    109 
    110   def __or__(self, ptransform):
--> 111     return self.pipeline.apply(ptransform, self)
    112 
    113 

/usr/local/lib/python2.7/dist-packages/apache_beam/pipeline.pyc in apply(self, transform, pvalueish, label)
    465     if isinstance(transform, ptransform._NamedPTransform):
    466       return self.apply(transform.transform, pvalueish,
--> 467                         label or transform.label)
    468 
    469     if not isinstance(transform, ptransform.PTransform):

/usr/local/lib/python2.7/dist-packages/apache_beam/pipeline.pyc in apply(self, transform, pvalueish, label)
    475       try:
    476         old_label, transform.label = transform.label, label
--> 477         return self.apply(transform, pvalueish)
    478       finally:
    479         transform.label = old_label

/usr/local/lib/python2.7/dist-packages/apache_beam/pipeline.pyc in apply(self, transform, pvalueish, label)
    511       transform.type_check_inputs(pvalueish)
    512 
--> 513     pvalueish_result = self.runner.apply(transform, pvalueish)
    514 
    515     if type_options is not None and type_options.pipeline_type_check:

/usr/local/lib/python2.7/dist-packages/apache_beam/runners/runner.pyc in apply(self, transform, input)
    191       m = getattr(self, 'apply_%s' % cls.__name__, None)
    192       if m:
--> 193         return m(transform, input)
    194     raise NotImplementedError(
    195         'Execution of [%s] not implemented in runner %s.' % (transform, self))

/usr/local/lib/python2.7/dist-packages/apache_beam/runners/runner.pyc in apply_PTransform(self, transform, input)
    197   def apply_PTransform(self, transform, input):
    198     # The base case of apply is to call the transform's expand.
--> 199     return transform.expand(input)
    200 
    201   def run_transform(self, transform_node):

/usr/local/lib/python2.7/dist-packages/tensorflow_data_validation/api/stats_api.pyc in expand(self, dataset)
    197             num_values_histogram_buckets=\
    198                 self._options.num_values_histogram_buckets,
--> 199             epsilon=self._options.epsilon),
    200 
    201         # Create numeric stats generator.

/usr/local/lib/python2.7/dist-packages/tensorflow_data_validation/statistics/generators/common_stats_generator.pyc in __init__(self, name, schema, num_values_histogram_buckets, epsilon)
    229     # Initialize quantiles combiner.
    230     self._quantiles_combiner = quantiles_util.QuantilesCombiner(
--> 231         num_values_histogram_buckets, epsilon)
    232 
    233   # Create an accumulator, which maps feature name to the partial stats

/usr/local/lib/python2.7/dist-packages/tensorflow_data_validation/utils/quantiles_util.pyc in __init__(self, num_quantiles, epsilon)
     38     self._num_quantiles = num_quantiles
     39     self._epsilon = epsilon
---> 40     self._quantiles_spec = analyzers._QuantilesCombinerSpec(
     41         num_quantiles=num_quantiles, epsilon=epsilon,
     42         bucket_numpy_dtype=np.float32, always_return_num_quantiles=True)

AttributeError: 'module' object has no attribute '_QuantilesCombinerSpec'
dpoulopoulos commented 6 years ago

Wrong place! Move it to tensorflow-data-validation