textRuleScore

loadFromDisk

##set_textrulescore ##file_io

Description

L'action `loadFromDisk` permet de charger différents types de données brutes (audio, binaire, CSV) directement depuis un système de fichiers (disque) vers une table en mémoireGemini said

Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
CAS. C'est l'outil indispensable et redoutablement efficace pour ingérer en masse des corpus de textes ou des documents non structurés avant de leur appliquer la magie de .

Syntaxe Officielle
proc cas;
textRuleScore.loadFromDisk /
casOut={caslib="string", name="string", replace=true|false}
data="string"
importOptions={fileType="AUDIO" | "BINARY" | "CSV", vars={{name="string", type="DOUBLE" | "INT" | "VARCHAR"}}}
path="string"
recursive=true|false
source="DIRECTORY" | "FILE" | "LISTING";
run;
quit;

Paramètres Clés

Nom du paramètre Description
casOut Spécifie la table de sortie CAS qui contiendra les données fraîchement chargées.
path Le chemin d'accès vers le fichier, le répertoire ou le fichier de liste à charger. Attention : ce chemin doit être accessible par le contrôleur (en mode SMP) ou par le premier worker (en mode MPP).
data Définit le nom de la colonne dans la table de sortie qui contiendra les données. Par défaut, SAS la nommera avec beaucoup d'originalité `_data_`.
importOptions Définit les paramètres de lecture. On y précise le type de fichier via `fileType` (AUDIO, BINARY ou CSV). Si vous importez du CSV, vous pouvez même typer précisément les variables avec la sous-option `vars`.
recursive Permet de fouiller de manière récursive dans les sous-répertoires (TRUE) ou non (FALSE, par défaut). Ne fonctionne logiquement que si le paramètre `source` est défini sur DIRECTORY.
source Indique la nature de la cible pointée par le `path` : un fichier unique (FILE), tout un répertoire (DIRECTORY) ou un fichier texte contenant une liste de chemins (LISTING).

Préparation des données

Préparation de l'environnement

Comme cette action lit directement depuis le système de fichiers physique du serveur CAS, il n'y a pas de création de données en mémoire au préalable. Assurez-vous simplement qu'un fichier ou un répertoire est bien accessible sur votre infrastructure !

1/* Assurez-vous d'avoir accès au chemin spécifié dans le paramètre 'path' sur le serveur CAS */
2/* Exemple : /tmp/mon_corpus_texte/ */

Exemples d'utilisation

Chargement basique d'un fichier

Un exemple simple pour aspirer le contenu d'un document texte précis dans une table CAS.

1PROC CAS;
2 textRuleScore.loadFromDisk /
3 casOut={name="DocTable", caslib="CASUSER", replace=TRUE}
4 path="/tmp/mon_document.txt"
5 SOURCE="FILE";
6RUN;
7QUIT;
Résultat Attendu :
Une table nommée `DocTable` est créée dans la bibliothèque `CASUSER`. Elle contient une colonne `_data_` avec le contenu du fichier cible.
Aspiration récursive d'un répertoire complet

Ici, on sort l'artillerie lourde : on charge récursivement tout un répertoire contenant un corpus, en imposant un nom élégant à la colonne de contenu et en forçant la lecture en mode binaire.

1PROC CAS;
2 textRuleScore.loadFromDisk /
3 casOut={name="Corpus_Complet", caslib="Public", replace=TRUE}
4 path="/tmp/mon_corpus/"
5 DATA="Contenu_Texte"
6 importOptions={fileType="BINARY"}
7 recursive=TRUE
8 SOURCE="DIRECTORY";
9RUN;
10QUIT;
Résultat Attendu :
Toutes les données des fichiers présents dans `/tmp/mon_corpus/` (ainsi que dans ses sous-répertoires) sont extraites et consolidées dans la table `Corpus_Complet` de la caslib `Public`. Le texte sera stocké dans la variable `Contenu_Texte`.