将 Spark Schema 转换为 Redshift Spectrum 嵌套模式

Translate Spark Schema to Redshift Spectrum Nested Schema

在 EMR 集群上使用 Apache Spark,我读入了 xml 数据,推断了模式,并以 parquet 格式将其存储在 s3 上。现在,它本质上是一个嵌套的 table.

使用 Spark,我有了架构。我现在希望能够为 Redshift Spectrum 创建一个外部 table 来查询。

如何将模式从 Spark 提供的格式转换为 Redshift Spectrum 的 CREATE EXTERNAL TABLE 语句所需的格式?

由于我要处理多个 'external tables',因此无法手动干扰架构。

我无法找到任何现有工具来执行从 Spark 模式格式到 Redshift Spectrum 外部 table 格式的转换(参见 Amazon Nested Table Tutorial

Spark 模式是 pyspark.sql.types.StructType 我可以使用 schema.jsonValue() 将模式 schema 转换为 json 并编写一个工具来进行转换,但是如果有现有的执行此操作的工具我更愿意使用它。

有什么想法/建议吗?

我最终编写了一个工具来解析从 pyspark 到 Redshift Spectrum 的模式。