Neste tutorial, exploramos como usamos Daft como um motor de dados de alta performance, nativo do Python, para construir um pipeline analítico de ponta a ponta. Começamos carregando um conjunto de dados MNIST do mundo real, e então o transformamos progressivamente usando UDFs, engenharia de features, agregações, junções e execução preguiçosa. Além disso, demonstramos como combinar perfeitamente processamento de dados estruturados, computação numérica e machine learning. Ao final, não estamos apenas manipulando dados, estamos construindo um pipeline completo pronto para modelo, alimentado pelo motor de execução escalável do Daft. Copiar Código Copiado Use um navegador diferente!pip -q install daft pyarrow pandas numpy scikit-learn import os os.environ["DO_NOT_TRACK"] = "true" import numpy as np import pandas as pd import daft from daft import col print("Versão Daft:", getattr(daft, "__version__", "unknown")) URL = "https://github.com/Eventual-Inc/mnist-json/raw/master/mnist_handwritten_test.json.gz" df = daft.read_json(URL) print("
Esquema (amostrado):") print(df.schema()) print("
Espiada:") df.show(5) Instalamos o Daft e suas bibliotecas de suporte diretamente no Google Colab para garantir um ambiente limpo e reproduzível. Configuramos as configurações opcionais e verificamos a versão instalada para confirmar que tudo está funcionando corretamente. Ao fazer isso, estabelecemos uma base estável para a construção do nosso pipeline de dados de ponta a ponta. Copiar Código Copiado Use um navegador diferente def to_28x28(pixels): arr = np.array(pixels, dtype=np.float32) if arr.size != 784: return None return arr.reshape(28, 28) df2 = ( df .with_column( "img_28x28", col("image").apply(to_28x28, return_dtype=daft.DataType.python()) ) .with_column( "pixel_mean", col("img_28x28").apply(lambda x: float(np.mean(x)) if x is not None else None, return_dtype=daft.DataType.float32()) ) .with_column( "pixel_std", col("img_28x28").apply(lambda x: float(np.std(x)) if x is not None else None, return_dtype=daft.DataType.float32()) ) ) print("
Após redimensionamento + features simples:") df2.select("label", "pixel_mean", "pixel_std").show(5) Carregamos um conjunto de dados JSON MNIST do mundo real diretamente de uma URL remota usando o leitor nativo do Daft. Inspecionamos o esquema e visualizamos os dados para entender sua estrutura e tipos de coluna. Isso nos permite validar o conjunto de dados antes de aplicar transformações e engenharia de features. Copiar Código Copiado Use um navegador diferente @daft.udf(return_dtype=daft.DataType.list(daft.DataType.float32()), batch_size=512) def featurize(images_28x28): out = [] for img in images_28x
Fonte: MarkTechPost
Publicado em 2026-03-05