GeoMesa 导出查询错误
GeoMesa export query error
问题:
当我尝试 运行 下面的查询时,它给出了错误。 CQL 查询中是否缺少某些内容或是否缺少 jar 文件?也无论它只是一个 GeoMesa 错误还是 accumulo 错误。有没有其他方法可以查询 GeoMesa 并在 CSV 文件中获取结果?
命名空间:我的命名空间
集合:d1temp
查询:
geomesa export -u user -p password -c myNamespace.d1temp -f d1-json -q "WITHIN(geom, POLYGON((-6.4101 55.597244,-6.4101 50.947156,0.656067 50.947156,0.656067 55.597244,-6.4101 55.597244)))"
错误:
id,*geom:Point:srid=4326,short_text_field:String,long_text_field_1:String,long_text_field_2:String,security_tag:String,numerical_tag_1:Integer,numerical_tag_2:Double,timestamp:Date
Exception in thread "main" java.lang.NoSuchMethodError: java.util.ArrayList.sort(Ljava/util/Comparator;)V
at org.locationtech.sfcurve.zorder.ZN.zranges(ZN.scala:212)
at org.locationtech.geomesa.curve.Z2SFC$.ranges(Z2SFC.scala:33)
at org.locationtech.geomesa.accumulo.index.z2.Z2QueryableIndex$class.getQueryPlan(Z2QueryableIndex.scala:119)
at org.locationtech.geomesa.accumulo.index.z2.Z2Index$.getQueryPlan(Z2Index.scala:20)
at org.locationtech.geomesa.accumulo.index.z2.Z2Index$.getQueryPlan(Z2Index.scala:20)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans$$anonfun.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans$$anonfun.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.utils.stats.MethodProfiling$class.profile(MethodProfiling.scala:20)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.profile(QueryPlanner.scala:56)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans.apply(QueryPlanner.scala:144)
at scala.collection.Iterator$$anon.hasNext(Iterator.scala:396)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$$anon.hasNext(CloseableIterator.scala:34)
at org.locationtech.geomesa.accumulo.util.SelfClosingIterator$$anon.hasNext(CloseableIterator.scala:100)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$$anon.<init>(CloseableIterator.scala:66)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$class.ciFlatMap(CloseableIterator.scala:65)
at org.locationtech.geomesa.accumulo.util.SelfClosingIterator$$anon.ciFlatMap(CloseableIterator.scala:98)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.scan(QueryPlanner.scala:87)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.executePlans(QueryPlanner.scala:108)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.runQuery(QueryPlanner.scala:78)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats$$anonfun.apply(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats$$anonfun.apply(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.utils.stats.MethodProfiling$class.profile(MethodProfiling.scala:26)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats.profile(AccumuloFeatureReader.scala:77)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats.<init>(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReader$$anon.<init>(AccumuloFeatureReader.scala:55)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReader$.apply(AccumuloFeatureReader.scala:55)
at org.locationtech.geomesa.accumulo.data.AccumuloDataStore.getFeatureReader(AccumuloDataStore.scala:439)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureCollection.reader(AccumuloFeatureSource.scala:171)
at org.geotools.data.store.DataFeatureCollection.openIterator(DataFeatureCollection.java:230)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureCollection.openIterator(AccumuloFeatureSource.scala:134)
at org.geotools.data.store.DataFeatureCollection.iterator(DataFeatureCollection.java:198)
at org.geotools.data.store.DataFeatureCollection.features(DataFeatureCollection.java:187)
at org.locationtech.geomesa.tools.accumulo.DelimitedExport.write(FeatureExporter.scala:156)
at org.locationtech.geomesa.tools.accumulo.commands.ExportCommand.execute(ExportCommand.scala:52)
at org.locationtech.geomesa.tools.common.Runner$class.main(Runner.scala:26)
at org.locationtech.geomesa.tools.accumulo.AccumuloRunner$.main(AccumuloRunner.scala:20)
at org.locationtech.geomesa.tools.accumulo.AccumuloRunner.main(AccumuloRunner.scala)
此错误发生在 Java 7. GeoMesa 需要 Java 8. 命令 'java --version' 将显示您正在使用的 Java 版本的详细信息。
您需要检查 OS 如何处理 Java 的多个版本,并更新 JAVA_HOME 以指向 Java 8 安装。之后,您就会重回正轨!
您的 CQL 过滤器和命令的其余部分看起来不错。我个人更喜欢 'bbox' 或 'intersects',因为我不必考虑参数顺序。 (如果A与B相交,则B与A相交。当A在B内时,并不意味着B在A内。)
问题: 当我尝试 运行 下面的查询时,它给出了错误。 CQL 查询中是否缺少某些内容或是否缺少 jar 文件?也无论它只是一个 GeoMesa 错误还是 accumulo 错误。有没有其他方法可以查询 GeoMesa 并在 CSV 文件中获取结果?
命名空间:我的命名空间
集合:d1temp
查询:
geomesa export -u user -p password -c myNamespace.d1temp -f d1-json -q "WITHIN(geom, POLYGON((-6.4101 55.597244,-6.4101 50.947156,0.656067 50.947156,0.656067 55.597244,-6.4101 55.597244)))"
错误:
id,*geom:Point:srid=4326,short_text_field:String,long_text_field_1:String,long_text_field_2:String,security_tag:String,numerical_tag_1:Integer,numerical_tag_2:Double,timestamp:Date
Exception in thread "main" java.lang.NoSuchMethodError: java.util.ArrayList.sort(Ljava/util/Comparator;)V
at org.locationtech.sfcurve.zorder.ZN.zranges(ZN.scala:212)
at org.locationtech.geomesa.curve.Z2SFC$.ranges(Z2SFC.scala:33)
at org.locationtech.geomesa.accumulo.index.z2.Z2QueryableIndex$class.getQueryPlan(Z2QueryableIndex.scala:119)
at org.locationtech.geomesa.accumulo.index.z2.Z2Index$.getQueryPlan(Z2Index.scala:20)
at org.locationtech.geomesa.accumulo.index.z2.Z2Index$.getQueryPlan(Z2Index.scala:20)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans$$anonfun.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans$$anonfun.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.utils.stats.MethodProfiling$class.profile(MethodProfiling.scala:20)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.profile(QueryPlanner.scala:56)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans.apply(QueryPlanner.scala:150)
at org.locationtech.geomesa.accumulo.index.QueryPlanner$$anonfun$getQueryPlans.apply(QueryPlanner.scala:144)
at scala.collection.Iterator$$anon.hasNext(Iterator.scala:396)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$$anon.hasNext(CloseableIterator.scala:34)
at org.locationtech.geomesa.accumulo.util.SelfClosingIterator$$anon.hasNext(CloseableIterator.scala:100)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$$anon.<init>(CloseableIterator.scala:66)
at org.locationtech.geomesa.accumulo.util.CloseableIterator$class.ciFlatMap(CloseableIterator.scala:65)
at org.locationtech.geomesa.accumulo.util.SelfClosingIterator$$anon.ciFlatMap(CloseableIterator.scala:98)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.scan(QueryPlanner.scala:87)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.executePlans(QueryPlanner.scala:108)
at org.locationtech.geomesa.accumulo.index.QueryPlanner.runQuery(QueryPlanner.scala:78)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats$$anonfun.apply(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats$$anonfun.apply(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.utils.stats.MethodProfiling$class.profile(MethodProfiling.scala:26)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats.profile(AccumuloFeatureReader.scala:77)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReaderWithStats.<init>(AccumuloFeatureReader.scala:86)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReader$$anon.<init>(AccumuloFeatureReader.scala:55)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureReader$.apply(AccumuloFeatureReader.scala:55)
at org.locationtech.geomesa.accumulo.data.AccumuloDataStore.getFeatureReader(AccumuloDataStore.scala:439)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureCollection.reader(AccumuloFeatureSource.scala:171)
at org.geotools.data.store.DataFeatureCollection.openIterator(DataFeatureCollection.java:230)
at org.locationtech.geomesa.accumulo.data.AccumuloFeatureCollection.openIterator(AccumuloFeatureSource.scala:134)
at org.geotools.data.store.DataFeatureCollection.iterator(DataFeatureCollection.java:198)
at org.geotools.data.store.DataFeatureCollection.features(DataFeatureCollection.java:187)
at org.locationtech.geomesa.tools.accumulo.DelimitedExport.write(FeatureExporter.scala:156)
at org.locationtech.geomesa.tools.accumulo.commands.ExportCommand.execute(ExportCommand.scala:52)
at org.locationtech.geomesa.tools.common.Runner$class.main(Runner.scala:26)
at org.locationtech.geomesa.tools.accumulo.AccumuloRunner$.main(AccumuloRunner.scala:20)
at org.locationtech.geomesa.tools.accumulo.AccumuloRunner.main(AccumuloRunner.scala)
此错误发生在 Java 7. GeoMesa 需要 Java 8. 命令 'java --version' 将显示您正在使用的 Java 版本的详细信息。
您需要检查 OS 如何处理 Java 的多个版本,并更新 JAVA_HOME 以指向 Java 8 安装。之后,您就会重回正轨!
您的 CQL 过滤器和命令的其余部分看起来不错。我个人更喜欢 'bbox' 或 'intersects',因为我不必考虑参数顺序。 (如果A与B相交,则B与A相交。当A在B内时,并不意味着B在A内。)