Длинное временное окно искры потоковой передачи вызывает исключение «выходит за пределы 64 КБ» - PullRequest
0 голосов
/ 30 января 2019

У меня есть потоковый фрейм данных 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, но похоже, что пока нет решения.

Кто-нибудь видел это раньше?Какой обходной путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...