Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Este es el tutorial 13 de la serie de tutoriales de RevoScaleR sobre el uso de las funciones de RevoScaleR con SQL Server.
En este tutorial, aprenderá a usar un archivo XDF para transferir datos entre contextos de cálculo remotos y locales. El almacenamiento de los datos en un archivo XDF permite realizar transformaciones en los datos.
Cuando termine, use los datos en el archivo para crear una nueva tabla de SQL Server. La función rxDataStep puede aplicar transformaciones a los datos y realiza la conversión entre tramas de datos y archivos .xdf.
Creación de una tabla de SQL Server desde un archivo XDF
Para este ejercicio, use de nuevo los datos de fraude de tarjetas de crédito. En este escenario, se le ha pedido realizar un análisis adicional de los usuarios en los estados de California, Oregon y Washington. Para que sea más eficaz, hemos decidido almacenar datos solo para estos estados en el equipo local, y trabajar únicamente con las variables sexo, titular de la tarjeta, estado y saldo.
Vuelva a usar la variable
stateAbbque ha creado anteriormente para identificar los niveles que quiere incluir y escriba una nueva variable,statesToKeep.statesToKeep <- sapply(c("CA", "OR", "WA"), grep, stateAbb) statesToKeepResultados
CA O BIEN WA 5 38 48 Defina los datos que quiere traer de SQL Server mediante una consulta de Transact-SQL. Más adelante use esta variable como el argumento inData para rxImport.
importQuery <- paste("SELECT gender,cardholder,balance,state FROM", sqlFraudTable, "WHERE (state = 5 OR state = 38 OR state = 48)")Asegúrese de que no hay ningún carácter oculto como saltos de línea o tabulaciones en la consulta.
A continuación, defina las columnas que se van a usar al trabajar con los datos en R. Por ejemplo, en el conjunto de datos más pequeño, solo necesita tres niveles de factor, porque la consulta solo devuelve datos para tres estados. Aplique la variable
statesToKeeppara identificar los niveles correctos que incluir.importColInfo <- list( gender = list( type = "factor", levels = c("1", "2"), newLevels = c("Male", "Female")), cardholder = list( type = "factor", levels = c("1", "2"), newLevels = c("Principal", "Secondary")), state = list( type = "factor", levels = as.character(statesToKeep), newLevels = names(statesToKeep)) )Establezca el contexto de cálculo en local, ya que quiere todos los datos disponibles en el equipo local.
rxSetComputeContext("local")La función rxImport puede importar datos desde cualquier origen de datos que se admita a un archivo XDF local. El uso de una copia local de los datos puede ser conveniente cuando quiera realizar muchos análisis distintos en los datos, pero quiere evitar ejecutar la misma consulta una y otra vez.
Cree el objeto de origen de datos pasando las variables previamente definidas como argumentos a RxSqlServerData.
sqlServerImportDS <- RxSqlServerData( connectionString = sqlConnString, sqlQuery = importQuery, colInfo = importColInfo)Llame a rxImport para escribir los datos en un archivo denominado
ccFraudSub.xdf, en el directorio de trabajo actual.localDS <- rxImport(inData = sqlServerImportDS, outFile = "ccFraudSub.xdf", overwrite = TRUE)El objeto
localDsdevuelto desde la función rxImport es un objeto de origen de datos RxXdfData ligero que representa el archivo de datosccFraud.xdfalmacenado localmente en el disco.Llame a rxGetVarInfo en el archivo XDF para comprobar que el esquema de datos es el mismo.
rxGetVarInfo(data = localDS)Resultados
rxGetVarInfo(data = localDS) Var 1: gender, Type: factor, no factor levels available Var 2: cardholder, Type: factor, no factor levels available Var 3: balance, Type: integer, Low/High: (0, 22463) Var 4: state, Type: factor, no factor levels availableAhora puede llamar a varias funciones de R para analizar el objeto localDs, como haría con los datos de origen en SQL Server. Por ejemplo, puede resumir por sexo:
rxSummary(~gender + cardholder + balance + state, data = localDS)
Pasos siguientes
En esta tutorial se concluye la serie de tutoriales de varias partes en RevoScaleR y SQL Server. Presenta numerosos conceptos relacionados con los datos y de cálculo, lo que le proporciona una base para avanzar con sus propios datos y requisitos de proyecto.
Para profundizar en los conocimientos de RevoScaleR, puede volver a la lista de tutoriales de R para repasar todos y cada uno de los ejercicios que podría no haber realizado. Como alternativa, revise los artículos de procedimientos de la tabla de contenido para obtener información sobre las tareas generales.