Veröffentlicht am :

PROC RANK In-Database mit SAS/ACCESS für Hadoop

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Skript beginnt mit dem Aufbau einer LIBNAME-Verbindung zu einem Hadoop-Server. Anschließend wird eine SASHELP-Tabelle nach Hadoop kopiert. Die PROC RANK-Prozedur wird zweimal ausgeführt: einmal unter Nutzung der In-Database-Verarbeitung (Standardverhalten) und einmal unter expliziter Deaktivierung dieser Funktionalität für Hadoop, um die lokale Verarbeitung zu demonstrieren. Abschließend werden die erstellten Tabellen bereinigt.
Datenanalyse

Type : MIXTE


Die Ausgangsdaten stammen aus der SASHELP-Bibliothek (`sashelp.class`) und werden dann über die LIBNAME 'mycdh' in ein externes System (Hadoop) kopiert. Eine temporäre Tabelle (`work.class_rank`) wird auch intern von SAS erstellt.

1 Codeblock
LIBNAME / DATA STEP Data
Erklärung :
Dieser Block stellt eine Verbindung zu einem Hadoop-Server her, indem die LIBNAME 'mycdh' mit den angegebenen Verbindungsinformationen erstellt wird. Anschließend wird ein DATA-Schritt verwendet, um die Tabelle 'sashelp.class' in diese neue Hadoop-Bibliothek zu kopieren, wodurch die Tabelle 'mycdh.class' im verteilten Dateisystem verfügbar gemacht wird.
Kopiert!
1LIBNAME mycdh hadoop server='quickstart.cloudera' user=cloudera password=cloudera schema='default';
2 
3DATA mycdh.class;
4 SET sashelp.class;
5RUN;
2 Codeblock
PROC RANK Data
Erklärung :
Aktiviert SAS-Tracing-Optionen ('sastrace'), um die potenzielle SQL-Code-Generierung anzuzeigen. Die Prozedur 'PROC RANK' wird dann auf der Tabelle 'mycdh.class' (die sich in Hadoop befindet) ausgeführt. Standardmäßig versucht SAS, diese Prozedur direkt in der Datenbank auszuführen, um die Leistung zu optimieren, wobei die Rangfolge nach abnehmendem 'weight' erfolgt.
Kopiert!
1options sastrace=',,,d' sastraceloc=saslog nostsuffix;
2 
3PROC RANK DATA=mycdh.class out=work.class_rank;
4 BY descending weight;
5RUN;
3 Codeblock
PROC RANK Data
Erklärung :
Ändert die SAS-Optionen, um die In-Database-SQL-Generierung für Hadoop explizit zu deaktivieren ('EXCLUDEDB='HADOOP''). Dieselbe 'PROC RANK'-Prozedur wird ausgeführt, aber dieses Mal holt SAS die Daten lokal von Hadoop, um die Rangverarbeitung auf dem SAS-Server durchzuführen.
Kopiert!
1options sqlgeneration=(DBMS EXCLUDEDB='HADOOP');
2 
3PROC RANK DATA=mycdh.class out=work.class_rank;
4 BY descending weight;
5RUN;
4 Codeblock
PROC PRINT
Erklärung :
Zeigt den Inhalt der Tabelle 'work.class_rank' an, die durch die vorherigen RANK-Prozeduren generiert wurde. Dies ermöglicht die Überprüfung der Ergebnisse der Rangfolgeoperation.
Kopiert!
1PROC PRINT DATA=work.class_rank;
2RUN;
5 Codeblock
PROC SQL
Erklärung :
Verwendet 'PROC SQL' zum Löschen der temporären Tabellen 'work.class_rank' und 'mycdh.class', die während der Skriptausführung erstellt wurden, um so eine Bereinigung der Umgebung zu gewährleisten.
Kopiert!
1PROC SQL;
2 drop TABLE work.class_rank;
3 drop TABLE mycdh.class;
4QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Übung 06 - SAS3880 / Ein Insider-Leitfaden zu SAS/ACCESS für Hadoop / In-Database PROC Beispiel