J'utilise le code suivant pour la création de la table:Trouver des valeurs distinctes de la colonne de la clef primaire dans CQL Cassandra
CREATE KEYSPACE mykeyspace
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
USE mykeyspace;
CREATE TABLE users (
user_id int PRIMARY KEY,
fname text,
lname text
);
INSERT INTO users (user_id, fname, lname)
VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id, fname, lname)
VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id, fname, lname)
VALUES (1746, 'john', 'smith');
Je voudrais trouver la valeur distincte de lname
colonne (ce n'est pas une clé primaire). Je voudrais obtenir le résultat suivant:
lname
-------
smith
En utilisant SELECT DISTINCT lname FROM users;
Cependant depuis lname
n'est pas un PRIMARY KEY
je reçois l'erreur suivante:
InvalidRequest: code=2200 [Invalid query] message="SELECT DISTINCT queries must
only request partition key columns and/or static columns (not lname)"
cqlsh:mykeyspace> SELECT DISTINCT lname FROM users;
Comment puis-je obtenir les valeurs distinctes de lname
?
Merci. J'utilise SPARK. Pouvez-vous expliquer comment cela peut-il être fait? Je pense que distinct est quelque chose de très commun. N'y a-t-il pas un code prêt dans SPARK (Scala) que je puisse utiliser pour cela? – Avi
Salut ne pas utiliser scala mais voici quelques liens qui peuvent aider http://stackoverflow.com/questions/30959955/how-does-distinct-function-work-in-spark ET http://stackoverflow.com/questions/24312113/efficient-count-distinct-avec-apache-étincelle –