Monday 22 April 2019

Mudança média scala


Tenho dados de transmissão em tempo real que entram em faísca e eu gostaria de fazer uma previsão média móvel sobre esses dados de séries temporais. Existe alguma maneira de implementar isso usando uma faísca em Java Ive já mencionada. Gist. githubsamklr27411098f04fc46dcd05revisões e Apache Spark Moving Average, mas ambos esses códigos estão escritos em Scala. Como não estou familiarizado com Scala, não consigo julgar se eu acho útil ou até mesmo converter o código para Java. Existe alguma implementação direta de previsão no Spark Java, pedida 12 de agosto 15 às 12: 44Introduzido no Spark 1.4, as funções da janela de faísca melhoraram a expressividade da Spark DataFrames e Spark SQL. Com as funções da janela, você pode calcular facilmente uma média móvel ou uma soma cumulativa, ou fazer referência a um valor em uma linha anterior de uma tabela. As funções da janela permitem que você faça muitos cálculos comuns com DataFrames, sem ter que recorrer à manipulação RDD. Funções de agregados, UDFs vs. janelas As funções de janela são complementares das operações existentes do DataFrame: agregados, como soma e média. E UDFs. Para revisar, os agregados calculam um resultado, uma soma ou média, para cada grupo de linhas, enquanto os UDFs calculam um resultado para cada linha com base apenas nos dados dessa linha. Em contraste, as funções da janela calculam um resultado para cada linha com base em uma janela de linhas. Por exemplo, em uma média móvel, você calcula para cada linha a média das linhas em torno da linha atual, isso pode ser feito com as funções da janela. Exemplo de média móvel Vamos mergulhar diretamente no exemplo da média móvel. Neste conjunto de dados de exemplo, existem dois clientes que gastaram diferentes quantidades de dinheiro a cada dia. Criando o cliente DataFrame. Todos os exemplos estão escritos em Scala com Spark 1.6.1, mas o mesmo pode ser feito em Python ou SQL. Val customers sc. parallelize (Lista ((Alice, 2017-05-01, 50,00), (Alice, 2017-05-03, 45,00), (Alice, 2017-05-04, 55,00), (Bob, 2017-05 -01, 25.00), função de janela e definição de janela de janela. Como mostrado no exemplo acima, existem duas partes para a aplicação de uma função de janela: (1) especificando a função de janela, como o avg no exemplo, e (2) especificando o Especificação de janela ou wSpec1 no exemplo. Para (1), você pode encontrar uma lista completa das funções de janela aqui: spark. apache. orgdocslatestapiscalaindex. htmlorg. apache. spark. sql. functions Você pode usar as funções listadas em 8220Aggregate Functions8221 e 8220Window Functions8221. Para (2) especificando uma especificação de janela, existem três componentes: partição, ordem e quadro. 8220Partition by8221 define como os dados são agrupados no exemplo acima, foi pelo cliente. Você precisa especificar uma razoável Agrupando porque todos os dados dentro de um grupo serão coletados para a mesma máquina. Idealmente, o DataFrame já foi particionado pelo desejado agrupamento. 8220Order by8221 define como as linhas são ordenadas dentro de um grupo no exemplo acima, foi por data. 8220Frame8221 define os limites da janela em relação à linha atual no exemplo acima, a janela variou entre a linha anterior e a próxima linha. Soma acumulada Em seguida, vamos calcular a soma cumulativa do valor gasto por cliente. Especificações da janela: o quadro varia desde o início (Long. MinValue) até a linha atual (0). Val wSpec2 Window. partitionBy (name).orderBy (date).rowsBetween (Long. MinValue, 0) Crie uma nova coluna que calcula a soma sobre o quadro de janela definido.

No comments:

Post a Comment