Beispiel #1
0
 def __init__(self, filename, schema, internal=False):
     with tf.name_scope("AvroIOTensor") as scope:
         metadata = ["schema: %s" % schema]
         resource, columns = core_ops.io_avro_readable_init(
             filename,
             metadata=metadata,
             container=scope,
             shared_name=f"{filename}/{uuid.uuid4().hex}",
         )
         columns = [column.decode() for column in columns.numpy().tolist()]
         elements = []
         for column in columns:
             shape, dtype = core_ops.io_avro_readable_spec(resource, column)
             shape = tf.TensorShape(shape.numpy())
             dtype = tf.as_dtype(dtype.numpy())
             spec = tf.TensorSpec(shape, dtype, column)
             function = io_tensor_ops._IOTensorComponentFunction(  # pylint: disable=protected-access
                 core_ops.io_avro_readable_read, resource, column, shape,
                 dtype)
             elements.append(
                 io_tensor_ops.BaseIOTensor(spec,
                                            function,
                                            internal=internal))
         spec = tuple(e.spec for e in elements)
         super().__init__(spec, columns, elements, internal=internal)
Beispiel #2
0
 def __init__(self, filename, mode=None, internal=False):
     with tf.name_scope("JSONIOTensor") as scope:
         metadata = [] if mode is None else ["mode: %s" % mode]
         resource, columns = core_ops.io_json_readable_init(
             filename,
             metadata=metadata,
             container=scope,
             shared_name="{}/{}".format(filename,
                                        uuid.uuid4().hex),
         )
         columns = [column.decode() for column in columns.numpy().tolist()]
         elements = []
         for column in columns:
             shape, dtype = core_ops.io_json_readable_spec(resource, column)
             shape = tf.TensorShape(shape.numpy())
             dtype = tf.as_dtype(dtype.numpy())
             spec = tf.TensorSpec(shape, dtype, column)
             function = io_tensor_ops._IOTensorComponentFunction(  # pylint: disable=protected-access
                 core_ops.io_json_readable_read, resource, column, shape,
                 dtype)
             elements.append(
                 io_tensor_ops.BaseIOTensor(spec,
                                            function,
                                            internal=internal))
         spec = tuple([e.spec for e in elements])
         super().__init__(spec, columns, elements, internal=internal)
Beispiel #3
0
    def isnull(self, column):
        """Return a BaseIOTensor of bool for null values in `column`"""
        column_index = self.columns.index(next(e for e in self.columns if e == column))
        spec = tf.nest.flatten(self.spec)[column_index]
        # change spec to bool
        spec = tf.TensorSpec(spec.shape, tf.bool)
        function = _IOTensorComponentLabelFunction(
            core_ops.io_csv_readable_read,
            self._resource,
            column,
            spec.shape,
            spec.dtype,
        )

        return io_tensor_ops.BaseIOTensor(spec, function, internal=True)