我已经与犀牛ETL库,真的很喜欢它的将方向打转转。但是我发现,关于它的坏的部分是文档是稀疏,似乎没有要在如何创建这些管道的过程,尤其是使用DSL不够好信息。

我只是试图创建一个DSL文件加载文件和数据导出到另一个文件,看看这一切如何能结合在一起。我到目前为止是这样的。

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

,则抛出该异常

File.boo(1,2):BCE0064:Boo.Lang.Compiler.CompilerError:名为 'DelimitedRecord' 或 'DelimitedRecordAttribute' 没有属性被发现(属性名称不区分大小写)。你的意思是 'System.Diagnostics.DelimitedListTraceListener'?

如果我删除属性部分我得到这个错误

例外:无法创建管道的importfile:类用户必须标明[DelimitedRecord]或[FixedLengthRecord]属性。 例外:未能执行操作File.import_file:类用户必须与[DelimitedRecord]或[FixedLengthRecord]属性

被标记

在这里的任何想法?还是有如何犀牛ETL?

一个DSL内使用FluentFile任何的例子
有帮助吗?

解决方案

DelimitedRecordAttribute 是在 FileHelpers 组件,FileHelpers命名空间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top