Hive.GROUPINGSETS有BUG?
随着Hive 0.10版的发布,GROUPING SETS出现了,并提供了ROLL UP和CUBE这两个特殊场景的子句,真是喜闻乐见的特性
随着Hive 0.10版的发布,GROUPING SETS出现了,并提供了ROLL UP和CUBE这两个特殊场景的子句,真是喜闻乐见的特性啊。不过最近在写两个HQL查询脚本的时候,我发现,对表达式进行GROUP BY并用GROUPING SETS自定义这些表达式的分组方式时,GROUPING SETS好像会出现解析异常:
FAILED: ParseException line 66:14 missing ) at ',' near ')' in subquery source line 66:80 mismatched input ',' expecting ) near ')' in subquery source
group by t1.my_month, t1.product, t1.usr_type, if(t3.earliest_logtime_monthly = '20140101', 'new_usr', 'old_usr'), if(t2.CTClass = 105, t1.ipcountry, t1.ipprovince), t1.ChannelID grouping sets ((t1.my_month, t1.usr_type, t1.ChannelID), (t1.my_month, t1.product, t1.usr_type, t1.ChannelID), (t1.my_month, if(t3.earliest_logtime_monthly = '20140101', 'new_usr', 'old_usr'), t1.ChannelID), (t1.my_month, t1.product, if(t3.earliest_logtime_monthly = '20140101', 'new_usr', 'old_usr'), t1.ChannelID), (t1.my_month, if(t2.Dim_CityClass = 105, t1.ipcountry, t1.ipprovince), t1.ChannelID), (t1.my_month, t1.product, if(t2.CTClass = 105, t1.ipcountry, t1.ipprovince), t1.ChannelID))
理论上,表达式和字段应该一样,可以出现在GROUPING SETS子句里并进行任意组合,对一些表达式的实测结果也表明GROUPING SETS里确实是支持表达式的。
这样的情况,使我怀疑GROUPING SETS子句的括号匹配逻辑没做得很完善,导致了括号配对抛出异常。不过,具体的问题,还是需要通过研究一下Hive实现源码来进一步确定这到底是不是一个BUG。
--------------------------------------------------------------------------------------------------------------------
2014-04-28
今天发现,好像是限定性名称的原因呢!就和Java的switch...case的case子句一样,case子句里的枚举值不能用限定性名称(EnumType.EnumValue1),只能用非限定性名称(EnumValue1)!难道grouping sets的Java实现涉及到switch...case子句?有待研究。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Was bedeuten Spielfehler? Während des Spielens stoßen wir oft auf unerwartete Fehler oder Probleme, wie zum Beispiel, dass Charaktere stecken bleiben, Aufgaben nicht fortgesetzt werden können, Bildschirmflimmern usw. Diese abnormalen Phänomene werden Game Bugs genannt, also Störungen oder Irrtümer im Spiel. In diesem Artikel untersuchen wir, was Spielfehler bedeuten und welche Auswirkungen sie auf Spieler und Entwickler haben. Spielfehler beziehen sich auf Fehler, die während der Entwicklung oder des Betriebs des Spiels auftreten und dazu führen, dass das Spiel nicht normal läuft oder sich unerwartet verhält. Diese Fehler können darauf zurückzuführen sein

Als die WWDC-Konferenz 2024 von Apple erfolgreich zu Ende ging, wurde nicht nur macos15 angekündigt, sondern auch das Update von Apples neuem iOS18-System erregte die meiste Aufmerksamkeit. Obwohl es viele neue Funktionen gibt, fragen sich die Leute unweigerlich, ob dies die erste Version von Apples iOS18 ist Es ist notwendig, Apple iOS18 zu aktualisieren. Welche Art von Fehlern gibt es in der neuesten Version von Apple iOS18? Nach der tatsächlichen Nutzungsbewertung finden Sie im Folgenden eine Zusammenfassung der Apple iOS18-Fehler. Werfen wir einen Blick darauf. Derzeit beeilen sich viele iPhone-Benutzer, auf iOS18 zu aktualisieren. Allerdings bereiten verschiedene Systemfehler den Menschen Unbehagen. Einige Blogger sagten, dass man beim Upgrade auf iOS18 vorsichtig sein sollte, weil „es so viele Fehler gibt“. Der Blogger sagte, wenn Ihr iPhone ist

„System Bagage“ bezieht sich auf einen Systemfehler. Die ursprüngliche Bedeutung von „Bug“ ist „Bug“, und jetzt kann es verwendet werden, um auf auf dem Computer vorhandene Schwachstellen zu verweisen dass Angreifer unbefugt darauf zugreifen können; im weitesten Sinne kann der Begriff „Bug“ zur Beschreibung von Lücken oder Mängeln verwendet werden, die in verschiedenen Bereichen auftreten.

Einige Leute möchten Win11 aktualisieren, wissen aber nicht, ob es viele Fehler in Win11 gibt und ob das Update Probleme verursachen wird. Tatsächlich gibt es jetzt Fehler in Win11, die jedoch kaum Auswirkungen auf die Verwendung haben. Gibt es viele Fehler in Win11? Antwort: Es gibt immer noch viele Fehler in Win11. Diese Fehler haben jedoch kaum Auswirkungen auf den täglichen Gebrauch. Wenn der Benutzer hohe Anforderungen an den täglichen Gebrauch stellt, wird eine spätere Verwendung empfohlen. Zusammenfassung der Win11-Fehler 1. Ressourcenmanager 1. Manchmal kommt es zu einem Speicherüberlauf, der zu einer hohen Speichernutzung des Ressourcenmanagers führt. 2. Diese Situation führt dazu, dass der Speicher mehr als 70 % belegt, was dazu führt, dass der Computer einfriert oder sogar abstürzt. 2. Konflikte und Abstürze 1. Einige Anwendungen sind nicht kompatibel genug, was zu Konflikten untereinander führt. 2. Obwohl es relativ wenige Konfliktverfahren gibt,

PHP ist eine weit verbreitete serverseitige Programmiersprache, die in fast allen Branchen eingesetzt wird. In diesem Artikel werden wir die besondere Rolle von PHP bei der Verarbeitung großer Datenmengen untersuchen. Unter bestimmten Umständen kann PHP mit ApacheHive zusammenarbeiten, um eine Datenverarbeitung und -analyse in Echtzeit zu erreichen. Lassen Sie uns zunächst Hive vorstellen. Hive ist eine Hadoop-basierte Data Warehouse-Lösung. Es kann strukturierte Daten in SQL-Abfragen abbilden und die Abfragen als MapReduce-Aufgaben ausführen.

In den letzten Jahren sind Data Warehouses zu einem integralen Bestandteil des Unternehmensdatenmanagements geworden. Die direkte Verwendung der Datenbank für die Datenanalyse kann einfache Abfrageanforderungen erfüllen. Wenn wir jedoch umfangreiche Datenanalysen durchführen müssen, kann eine einzelne Datenbank diese Anforderungen nicht mehr erfüllen. Derzeit müssen wir ein Data Warehouse verwenden, um große Datenmengen zu verarbeiten . Hive ist eine der beliebtesten Open-Source-Komponenten im Data-Warehouse-Bereich. Es kann die verteilte Hadoop-Computing-Engine und SQL-Abfragen integrieren und die parallele Verarbeitung großer Datenmengen unterstützen. Verwenden Sie gleichzeitig in der Go-Sprache

Da die Datenverarbeitung immer wichtiger wird, wird die Big-Data-Analyse immer häufiger. Allerdings möchten viele Unternehmen möglicherweise nicht viel Geld für eine Business-Analytics-Plattform ausgeben. Open-Source-Lösungen bieten diesen Unternehmen eine sinnvolle Option. In diesem Artikel besprechen wir, wie man die Open-Source-Big-Data-Analyseplattform Hive mit PHP implementiert. Hive ist ein Hadoop-basiertes Data-Warehouse-System, das große Datensätze auf Hadoop über SQL abfragen und verwalten kann. Für die Abfrage wird die SQL-ähnliche HiveQL-Sprache verwendet

Der Lebenszyklus eines Fehlers ist der Prozess von der Entdeckung eines Fehlers bis zur Schließung des Fehlers. Der spezifische Prozess ist: 1. Entdecken Sie den Fehler, das heißt, entdecken Sie die Lücken oder Mängel im Softwareprogramm. Reichen Sie den Fehler ein und versuchen Sie, die Eigenschaften und die Reproduktion des Fehlers zu beschreiben. Umgebung, Typ, Ebene, Priorität und detaillierte Reproduktionsschritte, Ergebnisse und Erwartungen usw. 3. Ordnen Sie den Fehler zu, d. h., weisen Sie das Problem direkt dem entsprechenden zu 4. Analysieren und bestätigen Sie den Fehler. 6. Überprüfen Sie den Fehler.
