我得到了下面的错误当我运行一个应用程序JavaWeb使用
我的问题是为什么它只在部署应用程序后才发生?在开发环境中它没有发生。
2021 03月24日08:50:41.150信息19613---[uler事件循环]组织。阿帕奇。火花调度程序。DAGScheduler:ShuffleMapStage 0(FalhaService中的collectAsList。java:60)在7.513秒内失败,原因是由于阶段失败导致作业中止:阶段0.0中的任务0失败1次,最近的失败:阶段0.0中的任务0.0丢失(TID 0)(GDBHML08执行器驱动程序):java。ArtihmeticException:java上的整数溢出。lang.Math。toIntExact(Math.java:1011)位于org。阿帕奇。火花sql。催化剂util。DateTimeUtils美元。org上的fromJavaDate(DateTimeUtils.scala:90)。阿帕奇。火花sql。催化剂CatalystTypeConverters$日期转换器$。toCatalystImpl(CatalystTypeConverters.scala:306)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters$日期转换器$。toCatalystImpl(CatalystTypeConverters.scala:305)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters$CatalystTypeConverter。toCatalyst(CatalystTypeConverters.scala:107)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters$StructConverter。toCatalystImpl(CatalystTypeConverters.scala:252)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters$StructConverter。toCatalystImpl(CatalystTypeConverters.scala:242)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters$CatalystTypeConverter。toCatalyst(CatalystTypeConverters.scala:107)位于org。阿帕奇。火花sql。催化剂CatalystTypeConverters美元$com上的anonfun$createToCatalystConverter$2(CatalystTypeConverters.scala:426)。数据税。火花连接器。数据源。UnsafeRowReader。在com上阅读(UnsafeRowReaderFactory.scala:34)。数据税。火花连接器。数据源。UnsafeRowReader。在com上阅读(UnsafeRowReaderFactory.scala:21)。数据税。火花连接器。数据源。CassandraPartitionReaderBase$scala上的anonfun$getIterator$2(CassandraScanPartitionReaderFactory.scala:110)。收集迭代器$$不超过10美元。下一步(迭代器。scala:461)在scala。收集迭代器$$不超过11美元。下一步(Iterator.scala:496)访问com。数据税。火花连接器。数据源。CassandraPartitionReaderBase。下一步(CassandraScanPartitionReaderFactory.scala:66)位于org。阿帕奇。火花sql。处决数据源。v2.分区计算器。hasNext(datasourcedd.scala:79)位于org。阿帕奇。火花sql。处决数据源。v2.MetricsIterator。hasNext(datasourcedd.scala:112)位于org。阿帕奇。火花中断迭代器。scala上的hasNext(InterruptableIterator.scala:37)。收集迭代器$$不超过10美元。hasNext(Iterator.scala:460)位于org。阿帕奇。火花sql。催化剂表达。GeneratedClass$GenerateEditorForCodeGenstage1。agg\u doAggregateWithKeys\u 0$(未知来源)位于组织。阿帕奇。火花sql。催化剂表达。GeneratedClass$GenerateEditorForCodeGenstage1。组织上的processNext(未知源)。阿帕奇。火花sql。处决BufferedRowIterator。hasNext(BufferedRowIterator.java:43)位于org。阿帕奇。火花sql。处决批发价$1美元。位于scala的hasNext(批发价:755)。收集迭代器$$不超过10美元。hasNext(Iterator.scala:460)位于org。阿帕奇。火花洗牌分类绕过MergeSortShuffleWriter。在org上编写(BypassMergeSortShuffleWriter.java:132)。阿帕奇。火花洗牌ShuffleWriteProcessor。在org上写入(ShuffleWriteProcessor.scala:59)。阿帕奇。火花调度程序。ShuffleMapTask。运行任务(ShuffleMapTask.scala:99),位于组织。阿帕奇。火花调度程序。ShuffleMapTask。org上的runTask(ShuffleMapTask.scala:52)。阿帕奇。火花调度程序。任务在组织上运行(Task.scala:131)。阿帕奇。火花执行人。执行者$TaskRunner$anonfun$run$3(Executor.scala:497)位于org。阿帕奇。火花util。Utils美元。tryWithSafeFinally(Utils.scala:1439)位于org。阿帕奇。火花执行人。执行者$TaskRunner。在java上运行(Executor.scala:500)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1149)。util。同时发生的ThreadPoolExecutor$工作者。在java上运行(ThreadPoolExecutor.java:624)。lang.Thread。运行(Thread.java:748)
驱动程序堆栈跟踪:2021 03月24日08:50:41.189信息19613---[nio-8080-exec-2]组织。阿帕奇。火花调度程序。DAGScheduler:作业0失败:FalhaService上的collectAsList。java:60,耗时8.160348秒
此错误中的行代码:
List<Row> rows = dataset.collectAsList();
代码块:
Dataset<Row> dataset = session.sql(sql.toString());
List<Row> rows = dataset.collectAsList();
ListIterator<Row> t = rows.listIterator();
while (t.hasNext()) {
Row row = t.next();
grafico = new EstGraficoRelEstTela();
grafico.setSuperficie(row.getLong(0));
grafico.setSubsea(row.getLong(1) + row.getLong(2));
grafico.setNomeTipoSensor(row.getString(3));
graficoLocalFalhas.add(grafico);
}
session.close();
谢谢
看起来数据库中的数据不正确,某些日期字段的日期已经很遥远了。如果查看源代码,可以看到它首先转换为毫秒,然后转换为天,并且此转换溢出了整数。这可以解释为什么代码在开发环境中工作。。。
您可以要求管理员检查文件中是否有损坏的数据,例如,使用nodetool scrub命令。
附言:您确定您使用的是Spark 3.0.1吗?错误中函数的位置与Spark 3.1.1匹配...
在我的代码中, 与负零相比 结果将为true。 但是 与负零相比 此外,结果将为true,而不是false 为什么这两种情况的结果都是真的? 这里有一个MCVE来测试它(在coliru上直播): 输出:
我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1
https://docs.gradle.org/current/userguide/custom_tasks.html 如何使此任务在执行阶段运行?正在传递一个空闭包 唯一的解决办法? 但是hello任务似乎是在构建的配置阶段调用的。
我想编写对浮点和双精度都有效的代码。我正在做这样的事情: 这让我想到,我不想在做双精度时,在常数为0.5f时失去精度,但是我不想在做单精度时,将0.5提升到双精度! 因此,我最终使用了操作符real(),如示例中所示。在单精度模式下,如果我使用real(0.5)反汇编函数“foo”,我得到的结果是,没有提升到double,而不是只使用0.5,提升发生在那里。 您可以检查使用: 我懂了 使用实数(0
我有在Gradle的执行阶段创建和执行任务的需求。 目前,在构建任务期间,我确定并创建了多个添加到taskContainer的任务,使用: 在第一次执行时,我得到以下错误: >任务工件状态缓存(.../.gradle/1.5/taskartifacts)尚未被锁定。 我做错了什么,有没有更好的方法在执行过程中动态添加任务?
问题内容: 我遇到的问题是在Android棉花糖(API 23)(即6.0)中将值0.0作为纬度和经度。 我对此进行了很多搜索,但没有找到解决方案。我的代码完全可以用于小于23的其他API版本。 我还为selfPermission放置了代码,所有这些都在起作用,相反,它使我迟到了0.0。 请看看我的追踪方式: GPSTracker.java DashboardActivity.java: 在onC