2016-07-29 26 views
0
id      bigint     from deserializer 
created_at    string     from deserializer 
source     string     from deserializer 
favorited    boolean     from deserializer 
retweeted_status  struct<text:string,user:struct<screen_name:string,name:string>,retweet_count:int> from deserializer 
entities    struct<urls:array<struct<expanded_url:string>>,user_mentions:array<struct<screen_name:string,name:string>>,hashtags:array<struct<text:string>>> from deserializer 
text     string     from deserializer 
user     struct<screen_name:string,name:string,friends_count:int,followers_count:int,statuses_count:int,verified:boolean,utc_offset:int,time_zone:string,location:string> from deserializer 
in_reply_to_screen_name string     from deserializer 

.Hive-Abfrage funktioniert nicht wie erwartet

select id from election order by election.retweeted_status.retweet_count desc limit 10 

Diese Abfrage funktioniert nicht der Fehler "SemanticException [Error 10002]: Zeile 1.53 Ungültige Spaltenverweis 'retweeted_status'" ist

select * from election order by election.retweeted_status.retweet_count desc limit 10 

Aber diese Abfrage funktioniert

+0

Meine 2 Cent: Sie können nicht 'ORDER BY' etwas, das nicht in der' SELECT' vorhanden ist. –

+0

BTW, was ist der Sinn dieses albernen Tags "mysql-logic" - selbst wenn man davon ausgeht, dass es "Logik" in MySQL gibt, hier führen Sie eine ** Hive ** -Abfrage aus. –

+0

Also vielleicht sollte die Frage mit dem Label * Entwickler nicht funktioniert wie erwartet von der Datenbank * ... –

Antwort

0

Die Abfrage wird in der folgenden Reihenfolge ausgeführt:

1 FROM-Klausel

2 WHERE-Klausel

3 GROUP

4 HAVING-Klausel

5 SELECT-Klausel

6 ORDER BY-Klausel BY-Klausel

7 Grenze

als Bestellung nach ausführt haben wir Ergebnismenge aus select-Klausel erhalten, da Sie die Spalte in select nicht ausgewählt haben nd die Spaltenreferenz, um die Operation auszuführen.

+0

Ja Sandeep Danke :) Es funktioniert jetzt. – rUCHIt