Pregunta

He estado jugando con la biblioteca ETL Rhino y me gusta mucho la dirección que se dirige. Sin embargo, he encontrado que la parte mala de esto es la documentación es escasa y no parece ser lo suficientemente buena información sobre cómo crear estos procesos de tuberías y en especial el uso de la DSL.

Estoy intentando crear un archivo de DSL para cargar un archivo y exportar los datos a otro archivo para ver cómo todo esto podría encajar. Lo que tengo hasta ahora es la siguiente.

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

Se lanza esta excepción

File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: se ha encontrado ningún atributo con el nombre 'DelimitedRecord' o 'DelimitedRecordAttribute' (nombres de atributo son mayúsculas y minúsculas). Quiso decir 'System.Diagnostics.DelimitedListTraceListener'?

Si quito la parte atributo consigo este error

Excepción: No se pudo crear IMPORTFILE tubería: El usuario de la clase debe estar marcado con el [DelimitedRecord] Atributo o [FixedLengthRecord]. Excepción: No se ha podido ejecutar la operación File.import_file: El usuario de la clase debe estar marcado con el [DelimitedRecord] o [FixedLengthRecord] Atributo

.

Todas las ideas aquí? O hay algún ejemplo de cómo utilizar el FluentFile dentro de un DSL para Rhino ETL?

¿Fue útil?

Solución

El DelimitedRecordAttribute está en el FileHelpers montaje, FileHelpers espacio de nombres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top