Python no Pentaho Data Integration (PDI)

Usando a abordagem desenvolvida para integrar o Python no Weka , o Pentaho Data Integration (PDI) agora possui um novo step que pode ser usado para alavancar a linguagem de programação Python (e seu extenso suporte baseado em pacotes para computação científica) como parte de um pipeline de integração de dados .  O step foi lançado para a comunidade a partir de Pentaho Labs e pode ser instalado diretamente da PDI através do marketplace.

Python está se tornando uma  opção ao R quando se trata de escolha de linguagem de programação para cientistas de dados. Na verdade, muitas pessoas estão aproveitando os pontos fortes de ambos os idiomas ao desenvolver soluções.  Com isso em mente, é claro que os cientistas de dados e os desenvolvedores de aplicativos preditivos podem aumentar a produtividade alavancando o combo Python + PDI.  Como todos sabemos, a preparação de dados consome a maior parte do tempo em um projeto preditivo típico. Essa preparação de dados geralmente pode ser alcançada mais rapidamente com o PDI, em comparação com o desenvolvimento de código a partir do zero, graças ao seu ambiente de desenvolvimento gráfico intuitivo e extensa biblioteca de conectores e etapas de processamento.  Em vez de ter que escrever (e reescrever) código para se conectar a sistemas de origem (como bancos de dados relacionais, bases de dados NoSQL, sistemas de arquivos Hadoop e assim por diante), e juntar / filtrar / misturar dados etc., o PDI permite que o desenvolvedor concentre seus esforços de codificação sobre os algorítimos de ciência de dados mais efetivos.

C Python Script Executor

Como o nome sugere, o novo step usa a implementação C da linguagem de programação Python. Embora existam soluções baseadas em JVM disponíveis – como o Jython – que permitem uma experiência mais integrada ao executar na JVM, isso não facilita o uso de muitas bibliotecas Python de alta potência para computação científica, devido ao fato de que tais bibliotecas incluem componentes altamente otimizados que estão escritos em C ou Fortran. Para obter acesso a essas bibliotecas, o step do  PDI se comunica com um micro-serviço em execução no ambiente C Python.   A comunicação é feita em soquetes simples e as mensagens são armazenadas nas estruturas JSON. Os conjuntos de dados são transmitidos como CSV e as rotinas muito rápidas para ler e escrever CSV do pacote pandas Python, são disparadas.
O step em si oferece a máxima flexibilidade quando se trata de lidar com dados.  Pode atuar como um ponto de partida / fonte de dados no PDI (permitindo assim ao desenvolvedor a liberdade de fornecer dados diretamente através do seu código Python, se assim o desejar), ou pode extrair dados de um outro step e colocá-lo no fluxo para o ambiente Python. No último caso, o usuário pode optar por enviar todas as linhas de entrada para o Python em um hit, enviar lotes de linhas de tamanho fixo ou enviar linhas um por vez. Em qualquer um desses casos, os dados enviados são considerados um conjunto de dados, são armazenados em uma variável especificada pelo usuário no Python e o script Python do usuário é invocado. No caso de “todos os dados”, há também a opção de aplicar a amostragem do repositório para a amostra descendente para um tamanho fixo antes de enviar os dados para o Python.  O DataFrame do pandas é usado como estrutura de dados para conjuntos de dados transferidos para o Python.
Um script python pode ser especificado através do editor incorporado, ou carregado a partir de um arquivo dinamicamente em tempo de execução. Existem dois cenários para obter o resultado do ambiente Python para passar para etapas do PDI, para posterior processamento. O primeiro cenário é quando há uma única variável para recuperar do Python e é um DataFrame do Pandas.  Nesse caso, as colunas do quadro de dados tornam-se campos de saída da step.  No segundo cenário, uma ou mais variáveis ​​não-data frame podem ser especificadas. Nesse caso, seus valores são assumidos como textuais (ou podem ser representados como texto) ou contêm dados de imagem (nesse caso eles são recuperados de Python como dados PNG binários). Cada variável é emitida em um campo PDI separado.

Requisitos

O step de Administrador do script CPython funcionará com PDI 5.0 ou superior.  Claro, requer que o Python seja instalado e o executável do python esteja em sua variável de ambiente PATH. O passo foi testado com Python 2.7 e 3.x e, no mínimo, e necessita das bibliotecas pandas, matplotlib e numpy instaladas. 

Exemplo

O exemplo de transformação mostrado na seguinte captura de tela pode ser obtido no link de download no final deste artigo.
O exemplo usa os dados clássicos da íris de Fisher.   O primeiro passo python (na parte superior) simplesmente calcula alguns quartis para as colunas numéricas nos dados da íris.  Isso é produzido a partir do passo como um pandas DataFrame, onde cada linha corresponde a um dos quartis computados (25º, 50º e 75º), e cada coluna contém o valor de um dos campos numéricos nos dados da íris. O segundo passo de python do topo usa a rotina de decomposição scikit-learn para calcular uma análise de componentes principais nos dados da íris e, em seguida, transforma os dados da íris no espaço PCA, que é então a saída do passo.  O terceiro passo de python do topo usa a biblioteca matplotlib e as rotinas de traçado da biblioteca de pandas para calcular algumas visualizações dos dados da íris (matriz do diagrama de dispersão, curvas de Andrew, coordenadas paralelas e rad-viz). Estes são extraídos como dados PNG binários do ambiente python e salvos em arquivos no mesmo diretório do qual a transformação foi carregada. Os dois passos de python na parte inferior da transformação aprendem um modelo de árvore de decisão e, em seguida, usam esse modelo para marcar os dados da íris, respectivamente. O modelo é salvo (do ambiente python) para o diretório do qual a transformação foi carregada.

Conclusão


O novo step do Administrador de Script CPI do PDI disponibiliza o poder do Python para o desenvolvedor e cientista de dados que utiliza o PDI.  Ele se junta às etapas de aprendizado da máquina R Script Executor e Weka na PDI como parte de uma matriz em expansão de ferramentas estatísticas e preditivas avançadas que podem ser alavancadas nos processos de integração de dados.

 

Arquivos para Download aqui

 

fonte: Mark Hall

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *