我正在构建一个应用程序,在其中使用 pyspark 查询 SQL Server 表。我的计划是将其推送到 kafka,它将由 Google Cloud Storage Sink Connector 使用并以 avro 格式保存在 Google Cloud Storage 中以供进一步处理。我这样做是因为我们构建的数据同步应用程序需要模式注册表来执行一些自动化操作,因此我无法将 pyspark avro 文件直接推送到 GCS。
我已经能够使用 pyspark 将数据推送到 kafka 主题,但找不到任何直接的方法将 pyspark 数据帧架构转换为 avro 架构,以存储在架构注册表中。
我花了两个小时搜索,似乎没有任何图书馆这样做。只是手动维护 Spark 数据类型和 avro 数据类型之间映射的代码。这个link有这样的示例代码。
但是链接本身说,可能缺少数据类型。所以我的问题是,有没有比我们自己维护映射更好的方法呢?理想情况下,我更愿意为此使用维护良好的库。
请告诉我你的想法
请参阅 Javadoc 了解
SchemaConverters
、toAvroType
https://spark.apache.org/docs/3.2.1/api/java/org/apache/spark/sql/avro/SchemaConverters.html