Problème
Il est possible d’exécuter des requêtes SQL sur une .xdf lus dans RevoR et SQL à l’intérieur de RevoR en cours d’exécution ?
Solution
Il n’est pas possible d’exécuter SQL lors de la lecture du fichier .xdf car il s’agit d’un fichier binaire qui contient des données et pas d’une base de données. Ce qui nous permet de travailler avec ces données de grande taille, c’est que nous pouvons les lire « segments » de la .xdf et qui nous permettent de mieux exploiter les ressources de disque en plus des ressources de mémoire et nous permettant de manipuler des données volumineuses.
Options-
Dans la mesure où le fichier xdf créé par RevoR, vous pouvez exécuter SQL sur les données lorsqu’il arrive dans RevoR en ajoutant une requête SQL à RxOdbcData. Un exemple serait :
foo <-RxOdbcData (sqlQuery = "sélectionner * à partir de foo_database »,
connectionString = connectionString)
Bien sûr, vous devrez disposer d’une connexion ODBC valide. Le guide de RevoScaleR ODBC importation a d’informations.
Une autre option consiste à utiliser des rxDataStep pour transformer les données dans la xdf dans un dataframe. Cela peut ne pas être une option si vous avez des fichiers de très grande .xdf, un dataframe doit être maintenu dans la mémoire. Vous pouvez ensuite utiliser un package Open Source appelé sqldf qui vous permet d’utiliser SQL sélectionne sur dataframes.