Error happen while executing the sql below:
select FID,MIN(CRASHTIME) as FIRST_CRASHTIME,MAX(CRASHTIME) as
LAST_CRASHTIME,count(1) as CRASH_CNT,count(distinct FIMEI) as
AFFECT_USER,FPACKAGE_NAME,FCRASH_POINT from EDL_FDT_OUC_UPLOAD_FILES where
UPLOAD_TIME>20160705000000 and UPLOAD_TIME<20160707000000 group by
FID,FPACKAGE_NAME,FCRASH_POINT order by count(1) desc limit 20
============
Caused by: java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:834)
at java.util.Collections.min(Collections.java:665)
at
org.apache.kylin.cube.cuboid.Cuboid.translateToValidCuboid(Cuboid.java:217)
at
org.apache.kylin.cube.cuboid.Cuboid.translateToValidCuboid(Cuboid.java:141)
at org.apache.kylin.cube.cuboid.Cuboid.findById(Cuboid.java:83)
at org.apache.kylin.cube.cuboid.Cuboid.identifyCuboid(Cuboid.java:68)
at
org.apache.kylin.storage.gtrecord.GTCubeStorageQueryBase.search(GTCubeStorageQueryBase.java:97)
at
org.apache.kylin.query.enumerator.OLAPEnumerator.queryStorage(OLAPEnumerator.java:120)
at
org.apache.kylin.query.enumerator.OLAPEnumerator.moveNext(OLAPEnumerator.java:69)
at Baz$1$1.moveNext(Unknown Source)
at
org.apache.calcite.linq4j.EnumerableDefaults.groupBy_(EnumerableDefaults.java:819)
at
org.apache.calcite.linq4j.EnumerableDefaults.groupBy(EnumerableDefaults.java:754)
at
org.apache.calcite.linq4j.DefaultEnumerable.groupBy(DefaultEnumerable.java:302)
at Baz.bind(Unknown Source)
at
org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:326)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:281)
at
org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:545)
at
org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:536)
at
org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:187)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:65)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:44)
at
org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:566)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:578)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135)
... 80 more
looks like it is doing a further agg, may be agg.getJoints() is empty,need to
do a empty check before Collections.min:
org.apache.kylin.cube.cuboid.Cuboid.translateToValidCuboid(Cuboid.java:217)
=======================================
return cuboidID | Collections.min(agg.getJoints(),
cuboidSelectComparator);
________________________________
赵天烁
Kevin Zhao
[email protected]<mailto:[email protected]>
珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com