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 Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











게임 버그란 무엇을 의미합니까? 게임을 플레이하는 동안 캐릭터가 멈추거나 작업을 계속할 수 없거나 화면이 깜박이는 등 예상치 못한 오류나 문제가 자주 발생합니다. 이러한 비정상적인 현상을 게임 버그, 즉 게임의 결함이나 오류라고 합니다. 이 기사에서는 게임 버그가 무엇을 의미하는지, 그리고 버그가 플레이어와 개발자에게 미치는 영향을 살펴보겠습니다. 게임 버그란 게임 개발이나 운영 과정에서 발생하는 오류로 인해 게임이 정상적으로 실행되지 않거나 예상치 못한 동작을 하는 현상을 말합니다. 이러한 오류는 다음으로 인해 발생할 수 있습니다.

Apple의 WWDC 컨퍼런스 2024가 성공적으로 마무리되면서 macos15가 발표되었을 뿐만 아니라 Apple의 새로운 iOS18 시스템 업데이트가 가장 큰 관심을 끌었습니다. Apple iOS18을 업그레이드하려면 최신 버전의 Apple iOS18에 어떤 종류의 버그가 있습니까? 실제 사용 평가를 마친 후 Apple iOS 18 버그를 요약하면 다음과 같습니다. 현재 많은 아이폰 사용자들이 iOS18로의 업그레이드를 서두르고 있지만, 각종 시스템 버그들이 사람들을 불편하게 만들고 있다. 일부 블로거는 "버그가 너무 많기 때문에" iOS18로 업그레이드할 때 주의해야 한다고 말했습니다. 블로거는 귀하의 iPhone이

시스템 버그는 시스템 버그를 말하는데, 버그의 본래 의미는 "버그"이며, 이제는 시스템 보안 정책에 결함이 있어 위험이 있다는 뜻으로 사용됩니다. 넓은 의미에서 공격자가 허가 없이 접근할 수 있는 버그는 인터넷에서 다양한 분야에서 발생하는 허점이나 결함을 설명하는 데 사용될 수 있습니다.

win11을 업데이트하고 싶은데 win11에 버그가 많은지, 업데이트로 인해 문제가 발생할지는 잘 모르시는 분들도 계십니다. 사실 현재 win11에도 버그가 있지만 사용에 미치는 영향은 거의 없습니다. win11에 버그가 많나요? 답변: win11에는 여전히 버그가 많습니다. 그러나 이러한 버그는 일상적인 사용에 거의 영향을 미치지 않습니다. 사용자가 일상적인 사용에 대한 요구 사항이 높은 경우 나중에 사용하는 것이 좋습니다. win11 버그 요약 1. 리소스 관리자 1. 가끔 메모리 오버플로가 발생하여 리소스 관리자의 메모리 사용량이 많아지는 경우가 있습니다. 2. 이 상황에서는 메모리 사용량이 70%를 초과하여 컴퓨터가 정지되거나 심지어 충돌이 발생할 수 있습니다. 2. 충돌 및 충돌 1. 일부 애플리케이션은 호환이 충분하지 않아 서로 충돌이 발생합니다. 2. 분쟁절차가 상대적으로 적음에도 불구하고,

최근 몇 년 동안 데이터 웨어하우스는 기업 데이터 관리의 필수적인 부분이 되었습니다. 데이터 분석을 위해 데이터베이스를 직접 사용하면 간단한 쿼리 요구 사항을 충족할 수 있지만, 대규모 데이터 분석을 수행해야 하는 경우 단일 데이터베이스로는 더 이상 이러한 요구 사항을 충족할 수 없습니다. . Hive는 데이터 웨어하우스 분야에서 가장 널리 사용되는 오픈 소스 구성 요소 중 하나입니다. Hadoop 분산 컴퓨팅 엔진과 SQL 쿼리를 통합하고 대규모 데이터의 병렬 처리를 지원할 수 있습니다. 동시에 Go 언어에서는 다음을 사용합니다.

PHP는 거의 모든 산업 분야에서 널리 사용되는 서버 측 프로그래밍 언어입니다. 이 글에서는 빅데이터 처리에서 PHP의 특별한 역할을 살펴보겠습니다. 특정 상황에서 PHP는 ApacheHive와 협력하여 실시간 데이터 처리 및 분석을 달성할 수 있습니다. 먼저 Hive를 소개하겠습니다. Hive는 Hadoop 기반 데이터 웨어하우스 솔루션입니다. 구조화된 데이터를 SQL 쿼리에 매핑하고 쿼리를 MapReduce 작업으로 실행할 수 있습니다.

데이터 처리가 점점 더 중요해짐에 따라 빅데이터 분석이 점점 더 보편화되고 있습니다. 그러나 많은 기업에서는 비즈니스 분석 플랫폼에 많은 돈을 지출하고 싶어하지 않을 수 있습니다. 오픈 소스 솔루션은 이러한 회사에 실행 가능한 옵션을 제공합니다. 이번 글에서는 PHP를 사용하여 오픈소스 Hive 빅데이터 분석 플랫폼을 구현하는 방법에 대해 설명하겠습니다. Hive는 Hadoop의 대규모 데이터 세트를 SQL을 통해 쿼리하고 관리할 수 있는 Hadoop 기반 데이터 웨어하우스 시스템입니다. SQL과 유사한 HiveQL 언어를 사용하여 쿼리합니다.

BUG의 라이프 사이클은 BUG가 발견된 시점부터 BUG가 종료될 때까지의 프로세스입니다. 구체적인 프로세스는 다음과 같습니다. 1. BUG 발견, 즉 소프트웨어 프로그램의 허점이나 결함을 발견합니다. 버그를 제출하고 결함의 속성과 재현을 설명합니다. 환경, 유형, 수준, 우선순위 및 세부 재현 단계, 결과 및 기대 사항 등을 설명합니다. 3. 버그를 할당합니다. 즉, 문제를 해당 버그에 직접 할당합니다. 4. 결함으로 분석하고 확인합니다. 5. BUG를 처리하고 수정합니다. 6. 회귀 검증 BUG를 닫습니다.
