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子句?有待研究。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ゲームのバグとは何ですか? ゲームのプレイ中に、キャラクターが動かなくなったり、タスクが続行できなくなったり、画面がちらついたりするなど、予期せぬエラーや問題が発生することがよくあります。このような異常現象をゲームバグ、つまりゲーム上の不具合やエラーと呼びます。この記事では、ゲームのバグが何を意味し、それがプレイヤーや開発者に与える影響について探っていきます。ゲームのバグとは、ゲームの開発または運用中に発生し、ゲームが正常に実行できなくなったり、予期しない動作を引き起こしたりするエラーを指します。これらのエラーの原因として考えられるのは、

Apple の WWDC カンファレンス 2024 が成功裡に終了する中、macos15 が発表されただけでなく、Apple の新しい iOS18 システムのアップデートが最も注目を集めました。Apple の iOS18 の最初のバージョンとして、多くの新機能がありますが、人々は必然的にそれがどうか疑問に思います。 Apple iOS18 にアップグレードする必要がありますが、Apple iOS18 の最新リリースにはどのようなバグがありますか?実際の使用評価の後、以下に Apple iOS 18 のバグの概要を示しますので、見てみましょう。現在、多くのiPhoneユーザーがiOS18へのアップグレードを急いでいますが、さまざまなシステムバグが人々を不快にさせています。一部のブロガーは、「バグが非常に多い」ため、iOS18にアップグレードする場合は注意する必要があると述べています。ブロガーは、あなたのiPhoneが

システムバゲージとはシステムのバグのことを指しますが、バグの本来の意味は「バグ」ですが、現在ではシステムのセキュリティポリシーに不備があり、コンピュータに存在する脆弱性を指す言葉として使われるようになりました。攻撃者が許可なくアクセスできる広義の危険 このトピックに関しては、バグはさまざまな分野に現れる抜け穴や欠陥を説明するために使用できます。

win11 にアップデートしたいけど、win11 にバグが多いのか、アップデートで問題が発生するのか分からないという人もいますが、実際、win11 には現在バグがありますが、使用にはほとんど影響がありません。 win11 には多くのバグがありますか? 回答: win11 にはまだ多くのバグがあります。ただし、これらのバグは日常の使用にはほとんど影響しません。ユーザーの日常使用に対する要求が高い場合は、後で使用することをお勧めします。 win11 のバグの概要 1. リソース マネージャー 1. メモリ オーバーフローが発生し、リソース マネージャーのメモリ使用量が高くなる場合があります。 2. この状況ではメモリが 70% 以上を占有し、コンピュータがフリーズしたりクラッシュしたりすることがあります。 2. 競合とクラッシュ 1. 一部のアプリケーションには互換性が不十分であり、相互に競合が発生します。 2.紛争手続きは比較的少ないですが、

近年、データ ウェアハウスは企業のデータ管理に不可欠な部分となっています。データ分析にデータベースを直接使用すると、単純なクエリのニーズを満たすことができますが、大規模なデータ分析を実行する必要がある場合、単一のデータベースではニーズを満たすことができなくなり、大量のデータを処理するデータ ウェアハウスを使用する必要があります。 。 Hive は、データ ウェアハウス分野で最も人気のあるオープン ソース コンポーネントの 1 つで、Hadoop 分散コンピューティング エンジンと SQL クエリを統合し、大量のデータの並列処理をサポートできます。同時に、Go 言語では次を使用します。

データ処理の重要性が高まるにつれて、ビッグデータ分析がますます一般的になってきています。ただし、多くの企業はビジネス分析プラットフォームに多額の費用を費やしたくないかもしれません。オープンソース ソリューションは、これらの企業に実行可能な選択肢を提供します。この記事では、PHP を使用してオープンソースの Hive ビッグ データ分析プラットフォームを実装する方法について説明します。 Hive は、SQL を介して Hadoop 上の大規模なデータ セットをクエリおよび管理できる Hadoop ベースのデータ ウェアハウス システムです。 SQL に似た HiveQL 言語を使用してクエリを実行します

PHP は、ほぼすべての業界で広く使用されているサーバーサイド プログラミング言語です。この記事では、ビッグ データ処理における PHP の特別な役割について説明します。特定の状況下では、PHP は ApacheHive と連携して、リアルタイムのデータ処理と分析を実現できます。まずはHiveについて紹介していきます。 Hive は、Hadoop ベースのデータ ウェアハウス ソリューションです。構造化データを SQL クエリにマッピングし、クエリを MapReduce タスクとして実行できます。

BUG のライフサイクルとは、BUG が発見されてから BUG がクローズされるまでのプロセスであり、具体的なプロセスは次のとおりです: 1. BUG の発見、つまりソフトウェア プログラムの抜け穴や欠陥を発見します。バグを提出し、欠陥の属性と再現性を説明してください。環境、種類、レベル、優先順位と詳細な再現手順、結果と予想など。 3. バグを割り当てる、つまり、問題を対応する担当者に直接割り当てます。開発者; 4. 分析して欠陥として確認する; 5. BUG を処理して修正する; 6. 回帰検証 BUG; 7. BUG を閉じる。
