scala - 长流式火花时间窗口导致“超过 64 KB”异常
问题描述
我有一个时间窗口为一小时的流式 Spark 数据帧,每分钟触发一次。
val momentumDataAggQuery = withTime
.selectExpr("parsed.symbol", "parsed.bid", "parsed.ask", "event_time")
.withWatermark("event_time", "5 seconds")
.groupBy(col("symbol"), window(col("event_time"), "60 minutes", "60 seconds"))
.agg(first("bid", true).as("first_bid"), first("ask").as("first_ask"), last("bid").as("last_bid"), last("ask").as("last_ask"))
当它运行时,它会抛出异常并出现以下错误:
org.codehaus.janino.InternalCompilerException: Compiling "GeneratedClass": Code of method "expand_doCon
sume_0$(Lorg/apache/spark/sql/catalyst/expressions/GeneratedClass$GeneratedIteratorForCodegenStage1;Lor
g/apache/spark/sql/catalyst/InternalRow;Lorg/apache/spark/unsafe/types/UTF8String;ZDZDZJZ)V" of class "
org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1" grows beyon
d 64 KB
我尝试减少时间窗口,我可以使用的最长可能是 30 分钟。
我找到了相关的 jira 问题https://issues.apache.org/jira/browse/SPARK-18091,但现在似乎没有解决方案。
有没有人见过这个?解决方法是什么?
解决方案
推荐阅读
- javascript - GPS 坐标的 D3 投影显示有趣的行为
- java - 二维数组每一行的总和。在方法内部
- python - Spyder 从错误的 python 环境中导入 numpy
- java - LinkedList 节点中有多个对象,比较?
- javascript - HTML 从文件上传中获取图像
- php - 通过使用数据库中的字段替换 id,使 .htaccess 中的 url 对 SEO 友好
- powershell - Powershell:有没有办法枚举单个文件夹或文件的访问权限?
- javascript - 如何从跨源站点中框架的谷歌应用脚本 webapp 访问相机?
- python - Pygame 文件 (音乐 & img) (replit)
- unity3d - Physics.Raycast 似乎无法始终如一地工作