keyspace allow cassandra astyanax

keyspace - cassandra allow filtering



Astyanax. Cómo leer SET y MAP Datatypes en cassandra (0)

Estoy tratando de leer una columna del tipo Set from cassandra usando el siguiente código astyanax.

val genres = col.getColumnByName("genres") val genValue = genres.getValue(new SetSerializer[String](UTF8Type.instance))

Encontré un código similar en la documentación de Astyanax también

https://github.com/Netflix/astyanax/wiki/Colecciones

pero obtengo un error

org.apache.cassandra.serializers.MarshalException: Unexpected extraneous bytes after set value at org.apache.cassandra.serializers.SetSerializer.deserialize(SetSerializer.java:64) at org.apache.cassandra.serializers.SetSerializer.deserialize(SetSerializer.java:27) at org.apache.cassandra.db.marshal.AbstractType.compose(AbstractType.java:142) at com.netflix.astyanax.serializers.SetSerializer.fromByteBuffer(SetSerializer.java:32)

La definición de mi tabla es

CREATE TABLE movielens_small.movies ( id uuid PRIMARY KEY, avg_rating float, genres set<text>, name text, release_date date, url text, video_release_date date ) WITH bloom_filter_fp_chance = 0.01

Puedo acceder fácilmente a una consulta de selección en cqlsh. así que no creo que haya algún problema con db.

Editar :: También probé

val myset = ListType.getInstance(UTF8Type.instance) val genValue = myset.compose(genres.getByteBufferValue)

Pero arroja el mismo error que hay bytes extraños inesperados.

Edit2 :: También probé

val genValue = new String(genres.getByteBufferValue.array(), "UTF-8")

Esto no arroja un error, y puedo ver datos ... pero es como un galimatías.

Edit3 :: También probé

val setSer = new SetSerializer[String](UTF8Type.instance) val buf = genres.getByteBufferValue val genValue = setSer.fromByteBuffer(buf) println(s"${name.getStringValue} rating: ${avgRating.getFloatValue} genres: ${genValue}")

Pero nuevamente el mismo problema de org.apache.cassandra.serializers.MarshalException: Unexpected extraneous bytes after set value

La definición de mi tabla de cassandra es

CREATE TABLE movielens_small.movies ( id uuid PRIMARY KEY, avg_rating float, genres set<text>, name text, release_date date, url text, video_release_date date ) WITH bloom_filter_fp_chance = 0.01 AND caching = {''keys'': ''ALL'', ''rows_per_partition'': ''NONE''} AND comment = '''' AND compaction = {''class'': ''org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'', ''max_threshold'': ''32'', ''min_threshold'': ''4''} AND compression = {''chunk_length_in_kb'': ''64'', ''class'': ''org.apache.cassandra.io.compress.LZ4Compressor''} AND crc_check_chance = 1.0 AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = ''99PERCENTILE'';