Le téléchargement .RData et .les fichiers csv à partir de FTP à l'aide de RCurl (ou toute autre méthode)
J'ai téléchargé un .RData fichier (créé à l'aide de save()
) à un serveur ftp, et je suis en train d'utiliser la fonction getURL() pour télécharger ce fichier. Pour tous les exemples et les postes que j'ai lu, je n'arrive pas à obtenir que cela fonctionne.
L' .RData fichier a été enregistré à l'aide de:
save(results, file=RDataFilePath, compress="xz") #save object "results" w/compression
#RDataFilePath is the location of the results.RData file on my harddrive
Ces données ont été téléchargées à l'aide de:
uploadURL <-"ftp://name:password@host/folder/results.RData" #name the url
ftpUpload(RDataFilePath, to=uploadURL, connecttimeout=120) #upload
C'est comment j'ai essayer de télécharger les résultats.RData à l'aide de getURL
:
downloadURL <- "host/folder/results.RData"
load(getURL(downloadURL, userpwd="name:password", connecttimeout=120))
qui donne l'erreur suivante:
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) :
embedded nul in string: 'ý7zXZ'
Quand je colle le downloadURL
chaîne dans mon navigateur, l' .RData les téléchargements de fichiers immédiatement, donc je sais il n'y a pas une faute de frappe. Le message d'erreur suggère que l'url ne peut pas le lire b/c de la compression de mise en forme; cependant, je reçois un message d'erreur similaire lorsque j'utilise save()
w/o compression.
J'ai également un message d'erreur lorsque j'essaie de télécharger un .csv sur le FTP:
read.csv(getURL(downloadURL1)) #downloadURL1 is similar to downloadURL, but points to the .csv file
Error in file(file, "rt") : cannot open the connection
et puis un avertissement qui stipule In addition: Warning message:
et puis commence à lister le contenu de la .csv.
In file(file, "rt") : cannot open file
J'ai essayé de comprendre cela pour le mieux partie de la matinée, et je sens que je dois être en manque de quelque chose vraiment de base. Je suppose que j'ai besoin de changer certaines curl option, de sorte qu'il sait quel type de fichier qu'il va lire. Ma syntaxe est probablement un peu, et je ne suis pas à l'aide de la fonction getURL correctement, mais je ne suis pas sûr de ce que je devrais faire.
Des conseils seraient grandement appréciés.
p.s. Mon approche est basée sur ce Post
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de le casser en deux étapes: d'abord télécharger le fichier, puis de le charger.
ou de coller avec rCurl vous pouvez essayer:
test=getURL( )
etread.csv(text=test)
Merci! Cependant, j'obtiens toujours une erreur lorsque vous tentez de lire la .RData fichier "Erreur dans curlPerform curl (= curl, .opts = opte, .encoding = .codage) : embedded nul dans la chaîne de caractères: 'ý7zXZ'". Lorsque j'essaie de télécharger.fichier, il dit qu'il est impossible d'ouvrir l'URL.getBinaryURL()
je peux obtenir dans le fichier sous forme binaire, c'est du charabia et je ne peux pas comprendre comment le convertir. C'est la classe est "brut", et save (), puis load() n'a pas à le convertir en arrière à l'original de l'objet R (ou quelque chose de valable).J'ai passé un peu de temps sur ce sujet que bien, en espérant l'utiliser dans une Brillante application donc je ne veux pas écrire sur le disque.
En Utilisant rawConnection (), j'ai été en mesure d'éviter de l'écrire sur le disque étape comme il a traité les données BRUTES de type parfaitement et éviter l'erreur.
FYI - Ceci est mon premier post alors j'espère que c'est utile