Domanda

Ho giocato in giro con la libreria ETL Rhino e piace molto la direzione che sta andando. Tuttavia ho trovato che la parte male su di esso è la documentazione è scarsa e non sembra essere abbastanza buone informazioni su come creare questi processi di pipeline e soprattutto utilizzando il DSL.

Sono solo cercando di creare un file DSL per caricare un file ed esportare i dati in un altro file per vedere come tutto questo potrebbe andare bene insieme. Quello che ho finora è questa.

[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()

Si genera questa eccezione

File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: è stato trovato alcun attributo con il nome di 'DelimitedRecord' o 'DelimitedRecordAttribute' (nomi degli attributi sono case insensitive). Forse cercavi 'System.Diagnostics.DelimitedListTraceListener'?

Se rimuovo la parte dell'attributo ottengo questo errore

Eccezione: Impossibile creare gasdotto ImportFile: L'Utente classe deve essere contrassegnato con il o attributo [DelimitedRecord] [FixedLengthRecord]. Eccezione: Impossibile eseguire un'operazione File.import_file: L'Utente classe deve essere contrassegnato con il [DelimitedRecord] o [FixedLengthRecord] attributo

.

Tutte le idee qui? Oppure ci sono esempi di come utilizzare il FluentFile all'interno di un DSL per Rhino ETL?

È stato utile?

Soluzione

Il DelimitedRecordAttribute è in FileHelpers assemblaggio, FileHelpers namespace.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top