Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare versioner
Detta är handledning 13 i RevoScaleR-handledningsserien om hur man använder RevoScaleR-funktioner med SQL Server.
I denna handledning kommer du att lära dig hur du använder en XDF-fil för att överföra data mellan fjärr- och lokala beräkningskontexter. Att lagra data i en XDF-fil gör att du kan utföra transformationer på datan.
När du är klar använder du datan i filen för att skapa en ny SQL Server-tabell. Funktionen rxDataStep kan applicera transformationer på datan och utför konverteringen mellan dataramar och .xdf-filer.
Skapa en SQL Server-tabell från en XDF-fil
För denna övning använder du kreditkortsbedrägeridata igen. I detta scenario har du blivit ombedd att göra extra analys på användare i delstaterna Kalifornien, Oregon och Washington. För att vara mer effektiv har du valt att lagra data för endast dessa delstater på din lokala dator och arbeta med endast variablerna kön, kortinnehavare, delstat och balans.
Återanvänd variabeln
stateAbbdu skapade tidigare för att identifiera vilka nivåer som ska inkluderas, och skriv dem till en ny variabel,statesToKeep.statesToKeep <- sapply(c("CA", "OR", "WA"), grep, stateAbb) statesToKeepResults
CA OR WA 5 38 48 Definiera den data du vill ta med från SQL Server, med en Transact-SQL fråga. Senare använder du denna variabel som inData-argumentet för rxImport.
importQuery <- paste("SELECT gender,cardholder,balance,state FROM", sqlFraudTable, "WHERE (state = 5 OR state = 38 OR state = 48)")Se till att det inte finns några dolda tecken som radflöden eller flikar i frågan.
Definiera sedan kolumnerna som ska användas när man arbetar med data i R. Till exempel, i den mindre datamängden behöver du bara tre faktornivåer, eftersom frågan returnerar data för endast tre tillstånd. Använd variabeln
statesToKeepför att identifiera rätt nivåer att inkludera.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)) )Ställ in beräkningskontexten till lokal, eftersom du vill ha all data tillgänglig på din lokala dator.
rxSetComputeContext("local")Funktionen rxImport kan importera data från vilken stödd datakälla som helst till en lokal XDF-fil. Att använda en lokal kopia av datan är praktiskt när du vill göra många olika analyser av datan, men vill undvika att köra samma fråga om och om igen.
Skapa datakällobjektet genom att skicka variabler som tidigare definierats som argument till RxSqlServerData.
sqlServerImportDS <- RxSqlServerData( connectionString = sqlConnString, sqlQuery = importQuery, colInfo = importColInfo)Anropa rxImport för att skriva datan till en fil som heter
ccFraudSub.xdf, i den aktuella arbetskatalogen.localDS <- rxImport(inData = sqlServerImportDS, outFile = "ccFraudSub.xdf", overwrite = TRUE)Objektet
localDssom returneras av funktionen rxImport är ett lättviktigt RxXdfData-datakällobjekt som representerar datafilen som lagrasccFraud.xdflokalt på disken.Anropa rxGetVarInfo på XDF-filen för att verifiera att dataschemat är detsamma.
rxGetVarInfo(data = localDS)Results
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 availableDu kan nu anropa olika R-funktioner för att analysera localDs-objektet, precis som du skulle göra med källdata på SQL Server. Till exempel kan du sammanfatta efter kön:
rxSummary(~gender + cardholder + balance + state, data = localDS)
Nästa steg
Denna handledning avslutar den flerdelade handledningsserien om RevoScaleR och SQL Server. Den introducerade dig till många datarelaterade och beräkningsrelaterade koncept, vilket gav dig en grund för att gå vidare med dina egna data- och projektkrav.
För att fördjupa din kunskap om RevoScaleR kan du återvända till R-tutorialslistan för att gå igenom eventuella övningar du kan ha missat. Alternativt kan du granska How-to-artiklarna i innehållsförteckningen för information om allmänna uppgifter.