It's a pretty straightforward error message. Some of your rows have columns with empty names (e.g. an empty string), and column names can't be empty. 

2011/11/27 Masoud Moshref Javadi <moshrefj@usc.edu>
 I get this error
Required field 'name' was not present! Struct: Column(name:null)

on different column families. My code is going to insert lots of rows in parallel.

I think this debug log from django may help:

  • /root/twiss/lib/python2.7/site-packages/pycassa/pool.py in new_f
    1.                 if self.max_retries != -1 and self._retry_count > self.max_retries:
    2.                     raise MaximumRetryException('Retried %d times. Last failure was %s: %s' %
    3.                                                 (self._retry_count, exc.__class__.__name__, exc))
    4.                 # Exponential backoff
    5.                 time.sleep(_BASE_BACKOFF * (2 ** self._retry_count))

    6.                 kwargs['reset'] = True
    1.                 return new_f(self, *args, **kwargs)
      ...

    1.         new_f.__name__ = f.__name__
    2.         return new_f

    3.     def _fail_once(self, *args, **kwargs):
    4.         if self._should_fail:
    Variable Value
    exc
    EOFError()
    f
    <unbound method Connection.batch_mutate>
    self
    <pycassa.pool.ConnectionWrapper object at 0x2086050>
    args
    ({'user50': {'User': [Mutation(column_or_supercolumn=ColumnOrSuperColumn(column=Column(timestamp=1322382778794088, name='password', value='password50', ttl=None), counter_super_column=None, super_column=None, counter_column=None), deletion=None),
                          Mutation(column_or_supercolumn=ColumnOrSuperColumn(column=Column(timestamp=1322382778794088, name='name', value='User 50', ttl=None), counter_super_column=None, super_column=None, counter_column=None), deletion=None)]}},
     1)
    new_f
    <function batch_mutate at 0x2062cf8>
    kwargs
    {'reset': True}
  • /root/twiss/lib/python2.7/site-packages/pycassa/pool.py in new_f
    1.                 result = f(self, *args, **kwargs)
    2.                 self._retry_count = 0 # reset the count after a success
    3.                 return result
    4.             except Thrift.TApplicationException, app_exc:
    5.                 self.close()
    6.                 self._pool._decrement_overflow()
    7.                 self._pool._clear_current()
    1.                 raise app_exc
      ...
    1.             except (TimedOutException, UnavailableException, Thrift.TException,
    2.                     socket.error, IOError, EOFError), exc:
    3.                 self._pool._notify_on_failure(exc, server=self.server, connection=self)

    4.                 self.close()
    5.                 self._pool._decrement_overflow()
    Variable Value
    f
    <unbound method Connection.batch_mutate>
    self
    <pycassa.pool.ConnectionWrapper object at 0x2086050>
    args
    ({'user50': {'User': [Mutation(column_or_supercolumn=ColumnOrSuperColumn(column=Column(timestamp=1322382778794088, name='password', value='password50', ttl=None), counter_super_column=None, super_column=None, counter_column=None), deletion=None),
                          Mutation(column_or_supercolumn=ColumnOrSuperColumn(column=Column(timestamp=1322382778794088, name='name', value='User 50', ttl=None), counter_super_column=None, super_column=None, counter_column=None), deletion=None)]}},
     1)
    app_exc
    TApplicationException(None,)
    new_f
    <function batch_mutate at 0x2062cf8>
    kwargs
    {}





--
Filipe Gonçalves