我一直在玩 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 中为 Rhino ETL 使用 FluentFile 的示例?