Java 运行时异常:未知的比较器';复合类型';
我需要在Cassandra Columns族中创建复合柱 每个列值都将存储如下内容-Java 运行时异常:未知的比较器';复合类型';,java,cassandra,astyanax,column-family,Java,Cassandra,Astyanax,Column Family,我需要在Cassandra Columns族中创建复合柱 每个列值都将存储如下内容- user-id column1 123 (Column1-Value Column1-SchemaName LastModifiedDate) create column family USER_DATA with key_validation_class = 'UTF8Type' and comparator = 'CompositeType(ByteType,UTF8Type,DateT
user-id column1
123 (Column1-Value Column1-SchemaName LastModifiedDate)
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
第2列和其他列也是如此。所以我决定这样做-
user-id column1
123 (Column1-Value Column1-SchemaName LastModifiedDate)
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
以下是各列的说明-
ByteType for Column-Value
UTF8Type for Column-SchemaName
DateType for LastModifiedDate
我像这样创建了下面的columnfamily-
user-id column1
123 (Column1-Value Column1-SchemaName LastModifiedDate)
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
让我知道这是否是创建上述柱族的正确方法
但是当我尝试执行上面的列时,我总是得到下面的错误
[default@userks] create column family USER_DATA
... with key_validation_class = 'UTF8Type'
... and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
... and default_validation_class = 'UTF8Type'
... and gc_grace = 86400
... and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
java.lang.RuntimeException: Unknown comparator 'CompositeType(ByteType,UTF8Type,DateType)'. Available functions: bytes, integer, long, int, lexicaluui
d, timeuuid, utf8, ascii, double, countercolumn.
有人能帮我吗
更新:-
我刚发现那个错误,我忘了在ByteType中添加额外的s
下面是一个家庭-
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(BytesType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
下面是我得到的错误
[default@beprofileks] create column family USER_DATA
... with key_validation_class = 'UTF8Type'
... and comparator = 'CompositeType(BytesType,UTF8Type,DateType)'
... and default_validation_class = 'UTF8Type'
... and gc_grace = 86400
... and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: cannot parse 'lmd' as hex bytes
它应该是
BytesType
,而不是ByteType
:
CompositeType(BytesType,UTF8Type,DateType)
另一个问题是,
lmd
不是comparatorCompositeType(ByTestType、UTF8Type、DateType)的有效列名
。有效名称是,例如,aa00:string:2013-09-19
我的错误。我刚刚发现了那个错误。。但在做了那个改变之后,我又得到了一个例外。我也编辑了我的问题。