根据这个 Spark Catalyst 是一个与实现无关的框架,用于操作关系运算符和表达式的树。我想使用 Spark Catalyst 解析 SQL DML 和 DDL 来编写和生成自定义 Scala 代码。但是,通过阅读代码,我不清楚是否有任何可以使用的围绕 Catalyst 的包装类?理想的包装器将接收一条 sql 语句并生成等效的 Scala 代码。对于我的用例看起来像这样
def generate("select substring(s, 1, 3) as from t1") =
{ // custom code
return custom_scala_code_which is executable given s as List[String]
}
这是一个简单的例子,但想法是我不想编写另一个解析器,我需要从遗留系统中解析许多 SQL 功能,我必须为它们编写自定义 Scala 实现。
在一个更普遍的问题中,由于缺乏类级设计文档,人们如何学习代码库并做出贡献?