Я пытаюсь понять искрообразование с точки зрения принципов агрегации. Spark DF основаны на мини-партиях, а вычисления выполняются на мини-партии, которая поступает в определенное временное окно.искрообразование с агрегацией
Допустим, у нас есть данные, поступающие в качестве -
Window_period_1[Data1, Data2, Data3]
Window_period_2[Data4, Data5, Data6]
..
тогда первый расчет будет сделано для Window_period_1, а затем для Window_period_2. Если мне нужно использовать новые входящие данные вместе с историческими данными, скажем, вроде функции groupby между Window_period_new и данными Window_period_1 и Window_period_2, как бы я это сделал?
Другой способ увидеть то же самое было бы позволяет сказать, что если у меня есть требование, где несколько кадров данных уже созданы -
df1, df2, DF3 и мне нужно запустить агрегацию, которая будет включать данные df1, df2, df3 и Window_period_1, Window_period_2 и все новые входящие потоковые данные
как бы я это сделал?
Чтобы поддержать ответ Натальи, есть целый ряд Datastores, которые либо подключаются, либо интегрируются с искровым светом и могут сохранять состояние для агрегаций (если контрольная точка не работает хорошо). [Hbase] (https://github.com/nerdammer/spark-hbase-connector) является одним из них. Существует также [SnappyData] (https://github.com/SnappyDataInc/snappydata), [Кассандра] (https://github.com/datastax/spark-cassandra-connector), [redis] (https: // github .com/RedisLabs/spark-redis) и [MemSQL] (https://github.com/memsql/memsql-spark-connector), чтобы назвать несколько. Все с различными плюсами и минусами. – plambre