首页 文章

用于Apache Spark拼花数据帧的JOOQ生成器?

提问于
浏览
2

我在一个使用JOOQ的地方工作,在后端代码的某些部分生成sql查询 . 已经编写了大量代码来使用它 . 在我这方面,我想将这些功能映射到spark中,特别是在Spark SQL中通过从一堆拼花文件加载的数据帧生成查询 .

是否有任何工具可以从镶木地板(或火花)模式生成DSL类?我找不到任何东西 . 其他方法在这个问题上取得了成功吗?

理想情况下,我想从可能不断发展的模式动态生成表和字段 .

我知道这是一个广泛的问题,如果它被认为超出了SO的范围,我将关闭它 .

1 回答

  • 0

    jOOQ并未正式支持Spark,但您可以使用多种方法对Spark数据库中的任何模式元数据进行反向工程:

    使用JDBCDatabase

    与任何其他jooq-meta Database 实现一样,如果您的JDBC驱动程序支持,您可以使用 JDBCDatabase 反向设计它可以通过JDBC DatabaseMetaData API找到的任何内容 .

    将文件用作元数据源

    从jOOQ 3.10版开始,有三种不同类型的“离线”元数据源可用于生成数据:

    • XMLDatabase将从XML文件生成代码 .

    • JPADatabase将从JPA注释的实体生成代码 .

    • DDLDatabase将解析DDL文件并对其输出进行反向工程(这可能不适用于Spark,因为它的语法不受官方支持)

    不使用代码生成器

    当然,您不必生成任何代码 . 您可以直接从JDBC驱动程序(通过 DatabaseMetaData API)获取元数据信息(通过DSLContext.meta()抽象),或者使用XML内容通过DSLContext.meta(InformationSchema)动态地再次向jOOQ提供模式 .

相关问题