J'ai joué avec la bibliothèque Rhino ETL et j'aime vraiment la direction dans laquelle elle se dirige. Cependant, j'ai trouvé que la mauvaise partie à ce sujet est la documentation est rare et il ne semble pas y avoir assez de bonnes informations sur la façon de créer ces processus de pipeline et en particulier en utilisant le DSL.Comment utiliser FluentFile dans Rhino ETL DSL?
Je suis juste en train de créer un fichier DSL pour charger un fichier et exporter les données dans un autre fichier pour voir comment tout cela pourrait s'emboiter. Ce que j'ai jusqu'ici est ceci.
[DelimitedRecord("\t")]
class User:
public Name as string
public Phone as string
public Email as string
operation import_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).From("""E:\Fake\Book1.txt""")
for row in file:
yield Row.FromObject(row)
operation export_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).To("""E:\Fake\Test.txt""")
for row in rows:
record = User(Name: row["Name"])
file.Write(record)
process ImportFile:
import_file()
export_file()
Il génère cette exception
File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: Aucun attribut avec le nom 'DelimitedRecord' ou 'DelimitedRecordAttribute' a été trouvé (attribut les noms sont insensibles à la casse). Voulez-vous dire 'System.Diagnostics.DelimitedListTraceListener'?
Si je retire la partie d'attribut je reçois cette erreur
Exception: Impossible de créer pipeline ImportFile: L'utilisateur de la classe doit être marqué du [DelimitedRecord] ou [FixedLengthRecord] Attributs. Exception: Echec de l'exécution de l'opération Fichier.import_fichier: L'utilisateur de la classe doit être marqué avec l'attribut [DelimitedRecord] ou [FixedLengthRecord].
Des idées ici? Ou existe-t-il des exemples d'utilisation de FluentFile dans un DSL pour Rhino ETL?
Cela est vrai. J'ai vérifié que l'assembly FileHelpers est référencé dans mon projet et même dans le même dossier que mon exécutable. J'ai également essayé d'ajouter un "FileHelpers d'importation" en haut de mon fichier DSL. Il va jeter les mêmes exceptions. –
Eh bien, l'erreur indique qu'il ne peut pas trouver la classe d'attribut ... il doit donc y avoir une référence manquante ... essayez d'utiliser SharpDevelop pour écrire votre code boo. Voir aussi cet exemple etl: http://www.mail-archive.com/[email protected]/msg00343.html –
+1 pour fournir un échantillon. Ce n'est pas facile à trouver. –