Charger et convertir un PDF dans une table CAS

Il arrive souvent que vos documents ne résident pas dans un fichier SAS ou une table CAS. Il peut arriver que vous ayez besoin de charger le contenu d'un document PDF dans CAS. Cet exemple utilise l'action loadTableAction d'action CAS permettant de charger une table en mémoire depuis un caslib. Elle rend les données disponibles pour l'analyse analytique distribuée et le traitement haute performance. pour vous permettre de charger et de convertir des fichiers de document dans une table CAS, qui peut ensuite être analysée. D'abord, nous devons créer une session CASConnexion temporaire entre un client et le serveur Cloud Analytic Services. Elle alloue des ressources dédiées pour l'exécution distribuée de tâches analytiques et la gestion des tables en mémoire. (pour plus d'information sur les sessions CAS, vous pouvez lire mon article sur le sujet : Les sessions CAS dans Viya)
1
cas sessionhousset sessopts=(caslib=casuser timeout=3600 metrics=true);
Puis créons une caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. de type "pathUn PATH (chemin) dans SAS Viya est une caslib pointant vers un répertoire de système de fichiers local ou réseau permettant au serveur CAS d'accéder directement aux fichiers de données." pointant sur le répertoire /opt/data/PDF.  Il est important de positionner l'option subDirectories à TRUE;
1
2
3
4
5
6
7
proc cas;
table.addCaslib /
dataSource={srcType="PATH"}
name="libpdf"
path="/opt/data/PDF"
subDirectories=TRUE;
run;
Enfin, créons le libname  associé à la ma caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. en utilisant la syntaxe ci-dessous :
1
caslib _all_ assign;
Regardons maintenant comment charger un document pdf dans cette nouvelle caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance.. Voici le code complet :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
proc cas;
builtins.loadActionSet /
actionSet="table";
run;
table.loadTable /
casOut={name="verlaine",
replace=TRUE
}
caslib="libpdf"
importOptions={fileType="DOCUMENT",
fileExtList={"PDF"},
recurse=TRUE,
tikaConv=TRUE,
tikaPath="/opt/sas/viya/home/SASFoundation/lib/docconvjars"
}
path="source";
run;
quit;
Cette PROC CAS utilise l'action loadTableAction d'action CAS permettant de charger une table en mémoire depuis un caslib. Elle rend les données disponibles pour l'analyse analytique distribuée et le traitement haute performance. de l'actionSet "Tabel" pour lire un ou plusieurs fichiers d'un répertoire, puis convertir le fichier  et l’insérer dans une  table CAS. La valeur du nom du paramètre casOut spécifie le nom de la table CAS en sortie (Verlaine) . La valeur du paramètre caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. spécifie le nom de la bibliothèque d'entrée à utiliser (libpdf). La valeur DOCUMENT du paramètre fileType spécifie l'utilisation de la conversion de document. Le paramètre fileExtList spécifie les extensions de fichier que vous souhaitez charger et convertir. (pdf) La valeur que vous spécifiez pour le paramètre recurse (TRUE ou FALSE) indique si vous souhaitez charger de manière récursive des fichiers dans des sous-répertoires. La valeur par défaut du paramètre recurse est TRUE. Les paramètres tikaConv et tikaPath spécifient si vous souhaitez effectuer une conversion Tika. Tika est une boîte à outils d'analyse de contenu. Tika détecte et extrait les métadonnéesInformations décrivant les données, les utilisateurs et les ressources dans SAS Viya. Elles assurent la traçabilité, la sécurité et la gouvernance au sein de l'architecture distribuée. et le texte de plus de mille types de fichiers différents (tels que PPT, XLS et PDF). Tous ces types de fichiers peuvent être analysés via une interface unique, ce qui rend Tika utile pour l'indexation des moteurs de recherche, l'analyse de contenu, la traduction, etc. La valeur par défaut du paramètre tikaConv est FALSE. Si la valeur du paramètre tikaConv est TRUE, vous pouvez utiliser le paramètre tikaPath pour spécifier le chemin d'accès au répertoire où se trouvent les fichiers JAR Tika. Le paramètre pathUn PATH (chemin) dans SAS Viya est une caslib pointant vers un répertoire de système de fichiers local ou réseau permettant au serveur CAS d'accéder directement aux fichiers de données. spécifie le répertoire contenant les fichiers à convertir.(source qui doit être un sous-repertoire de la caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. libpdf : /opt/data/PDF/source) La copie d'écran ci-dessous montre le contenu du répertoire /opt/data/PDF/source : sas_cas_tika_verlaine Voici le résultat de l'exécution du programme : log_cas_viya_convertir_pdf La table Verlaine est créée : log_cas_viya_convertir_pdf_avec_tika   Cette table contient le contenu du pdf :
1
2
3
proc sql;
select * from libpdf.verlaine;
quit;
log_cas_viya_convertir_pdf_avec_tika_resultat  

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.