Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O recurso sparklyr da linguagem R serve como uma interface para o Apache Spark. O recurso sparklr fornece um mecanismo para interagir com o Spark com interfaces R familiares. Use o sparklyr por meio de definições de trabalho em lote do Spark ou com blocos de anotações interativos do Microsoft Fabric.
sparklyr
é usado com outros pacotes tidyverse - por exemplo, dplyr. Microsoft Fabric distribui a versão estável mais recente do sparklyr e do tidyverse em cada lançamento do runtime. Você pode importar esses recursos e começar a usar a API.
Pré-requisitos
Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.
Inicie sessão no Microsoft Fabric.
Use o seletor de experiência no canto inferior esquerdo da página inicial para alternar para o Fabric.
Abra ou crie um bloco de notas. Para saber como, consulte Como usar blocos de anotações do Microsoft Fabric.
Defina a opção de idioma como SparkR (R) para alterar o idioma principal.
Ligue o seu bloco de notas a uma casa no lago. No lado esquerdo, selecione Adicionar para adicionar uma casa de lago existente ou para criar uma casa de lago.
Conecte o sparklyr ao cluster Synapse Spark
O método de conexão da função spark_connect()
estabelece uma conexão sparklyr
. A função cria um novo método de conexão chamado synapse
, que se conecta a uma sessão Spark existente. Reduz drasticamente o tempo de início da sessão sparklyr
. Este método de conexão está disponível no projeto sparklyr de código aberto. Com method = "synapse"
, você pode usar tanto sparklyr
como SparkR
na mesma sessão e partilhar dados facilmente entre eles. O exemplo de código de célula do bloco de anotações a seguir usa a spark_connect()
função:
# connect sparklyr to your spark cluster
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", method = "synapse", config = config)
Usar o sparklyr para ler dados
Uma nova sessão do Spark não contém dados. Em seguida, carregue os dados na memória da sessão do Spark ou aponte o Spark para o local dos dados para que a sessão possa acessar os dados sob demanda:
# load the sparklyr package
library(sparklyr)
# copy data from R environment to the Spark session's memory
mtcars_tbl <- copy_to(sc, mtcars, "spark_mtcars", overwrite = TRUE)
head(mtcars_tbl)
Com sparklyr
, você também pode write
e read
dados de um arquivo Lakehouse usando um valor de caminho ABFS. Para ler e escrever num Lakehouse, primeiro adicione o Lakehouse à sua sessão. No lado esquerdo do bloco de anotações, selecione Adicionar para adicionar um Lakehouse existente. Além disso, você pode criar um Lakehouse.
Para encontrar o caminho ABFS, selecione com o botão direito do mouse a pasta Arquivos no Lakehouse e selecione Copiar caminho ABFS. Cole o caminho para substituir abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
no exemplo de código a seguir:
temp_csv = "abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files/data/mtcars.csv"
# write the table to your lakehouse using the ABFS path
spark_write_csv(mtcars_tbl, temp_csv, header = TRUE, mode = 'overwrite')
# read the data as CSV from lakehouse using the ABFS path
mtcarsDF <- spark_read_csv(sc, temp_csv)
head(mtcarsDF)
Utilize sparklyr para manipular dados
sparklyr
fornece diferentes maneiras de processar dados dentro do Spark, com:
-
dplyr
comandos - SparkSQL
- Transformadores de características Spark
Utilize dplyr
Você pode usar comandos dplyr
familiares para preparar dados dentro do Spark. Os comandos são executados dentro do Spark, evitando transferências de dados desnecessárias entre o R e o Spark.
# count cars by the number of cylinders the engine contains (cyl), order the results descendingly
library(dplyr)
cargroup <- group_by(mtcars_tbl, cyl) %>%
count() %>%
arrange(desc(n))
cargroup
O recurso Manipulando dados com dplyr
oferece mais informações sobre o uso do dplyr com o Spark.
sparklyr
e dplyr
traduzir os comandos R para o Spark SQL. Use show_query()
para mostrar a consulta resultante:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Usar SQL
Você também pode executar consultas SQL diretamente em tabelas dentro de um cluster do Spark. O objeto
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Usar transformadores de características
Ambos os métodos anteriores dependem de instruções SQL. O Spark fornece comandos que tornam algumas transformações de dados mais convenientes, sem o uso de SQL. Por exemplo, o ft_binarizer()
comando simplifica a criação de uma nova coluna que indica se um valor em outra coluna excede ou não um determinado limite:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
O recurso Reference -FT oferece uma lista completa dos Transformadores de Funcionalidades do Spark disponíveis através sparklyr
.
Partilhar dados entre sparklyr
e SparkR
Quando se conecta sparklyr
ao cluster Spark Synapse com method = "synapse"
, ambos sparklyr
e SparkR
ficam disponíveis na mesma sessão e podem facilmente compartilhar dados entre si. Você pode criar uma tabela do Spark no sparklyr
e lê-la de SparkR
:
# load the sparklyr package
library(sparklyr)
# Create table in `sparklyr`
mtcars_sparklyr <- copy_to(sc, df = mtcars, name = "mtcars_tbl", overwrite = TRUE, repartition = 3L)
# Read table from `SparkR`
mtcars_sparklr <- SparkR::sql("select cyl, count(*) as n
from mtcars_tbl
GROUP BY cyl
ORDER BY n DESC")
head(mtcars_sparklr)
Aprendizagem automática
O exemplo a seguir usa ml_linear_regression()
para ajustar um modelo de regressão linear. O modelo usa o conjunto de mtcars
dados embutido para tentar prever o consumo de combustível (mpg
) de um carro com base no peso (wt
) do carro e no número de cilindros (cyl
) do motor do carro. Todos os casos aqui assumem uma relação linear entre mpg
e cada uma das nossas características.
Gerar conjuntos de dados de teste e treinamento
Use uma divisão - 70% para treinamento e 30% - para testar o modelo. As alterações a este rácio conduzem a diferentes modelos:
# split the dataframe into test and training dataframes
partitions <- mtcars_tbl %>%
select(mpg, wt, cyl) %>%
sdf_random_split(training = 0.7, test = 0.3, seed = 2023)
Treinar o modelo
Treinar o modelo de Regressão Logística.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Use summary()
para saber mais sobre a qualidade do nosso modelo e a significância estatística de cada um dos nossos preditores:
summary(fit)
Use o modelo
Chamada ml_predict()
para aplicar o modelo ao conjunto de dados de teste:
pred <- ml_predict(fit, partitions$test)
head(pred)
Visite Referência - ML para obter uma lista dos modelos do Spark ML disponíveis através do sparklyr.
Desconectar do cluster Spark
Para encerrar a sua sessão do Spark, chame spark_disconnect()
, ou selecione o botão Parar sessão na parte superior da barra de ferramentas do notebook.
spark_disconnect(sc)
Conteúdo relacionado
Saiba mais sobre as funcionalidades R: