【问题标题】:How can I use FluentFile in Rhino ETL DSL?如何在 Rhino ETL DSL 中使用 FluentFile?
【发布时间】:2009-07-14 23:11:45
【问题描述】:

我一直在使用 Rhino 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] 属性标记 User 类。 异常:无法执行操作 File.import_file:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。

这里有什么想法吗?或者是否有任何示例说明如何在 DSL 中使用 FluentFile 进行 Rhino ETL?

【问题讨论】:

    标签: .net boo rhino-etl


    【解决方案1】:

    DelimitedRecordAttribute 位于 FileHelpers 程序集 FileHelpers 命名空间中。

    【讨论】:

    • 这是真的。我确保 FileHelpers 程序集在我的项目中被引用,甚至在与我的可执行文件相同的文件夹中。我还尝试将“import FileHelpers”添加到我的 DSL 文件的顶部。它会抛出同样的异常。
    • 嗯,错误说它找不到属性类...所以它必须缺少一些参考...尝试使用 SharpDevelop 编写您的 boo 代码。另请参阅此 etl 示例:mail-archive.com/rhino-tools-dev@googlegroups.com/msg00343.html
    • 我终于能够回来重温这个,你发布的链接对我需要做的工作很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多