0

Ich versuche, die Cassandra-Datenbank mit SparkSQL-Terminal abzufragen. Abfrage:Abfrage kann nicht basierend auf TimeUUID in Spark SQL

select * from keyspace.tablename 
where user_id = e3a119e0-8744-11e5-a557-e789fe3b4cc1; 

Error: java.lang.RuntimeException: [1.88] failure: ``union'' expected but identifier e5 found

auch versucht:

user_id= UUID.fromString(\`e3a119e0-8744-11e5-a557-e789fe3b4cc1\`)") 

user_id= \'e3a119e0-8744-11e5-a557-e789fe3b4cc1\'") 

token(user_id)= token(`e3a119e0-8744-11e5-a557-e789fe3b4cc1`) 

Ich bin nicht sicher, wie kann ich Daten auf timeuuid abfragen.

Antwort

1

TimeUUIDs werden in SparkSQL nicht als Typ unterstützt, sodass nur direkte Zeichenfolgenvergleiche möglich sind. Stellen Sie den TIMEUUID als String

select * from keyspace.tablename where user_id = "e3a119e0-8744-11e5-a557-e789fe3b4cc1" 
+0

Ich habe dies auch versucht, aber sparkSQL nicht erkennt TIMEUUID: 1) val group = csc.sql ("wählen Sie eine aus keyspace.table WHERE user_id = 'e3a119e0-8744-11e5 -a557-e789fe3b4cc1 '"); 2) group.show() // Dies wird einen Fehler wie folgt auslösen: Das Objekt e3a119e0-8744-11e5-a557-e789fe3b4cc1 vom Typ class org.apache.spark.sql.types.UTF8String kann nicht in java.util.UUID konvertiert werden. – user3893382

+0

Verwenden Sie den HiveContext, der Fehler kann von Ihrer Version abhängen, stellen Sie sicher, dass Sie die neueste Version für Ihre verfügbaren connecto verwenden – RussS

+0

Ich fand, dass dies das Problem mit DSE 4.8.4 ist und in höheren Versionen von DSE 5.0.0 behoben ist. – user3893382

Verwandte Themen