AWS Glue:如何使用resolvchoice转换为整数数组?



当使用glueContext.create_dynamic_frame.from_options方法加载JSON时,如果JSON包含空数组,则无法推断数组的数据类型,因此我得到如下模式:

root
|-- myemptyarray: array (nullable = true)
|    |-- element: null (containsNull = true)

是否可以使用resolvchoice操作来改变数组类型?

我试图在规范中指定像("myemptyarray": "cast:array(int)")和许多其他的东西,但没有成功。不幸的是,从awsglue-libs中的python API代码中,我无法推断出如何能够在此转换期间将元素类型传递给ArrayType。

如果有人发现如何做到这一点,或者如果它甚至是可能的,它将非常感激在这里分享:)

编辑:我知道这是可能使用纯火花,我只是想知道是否有一种方法在DynamicFrame级别使用Glue来做到这一点。

我认为对于这个用例,您需要直接使用Spark API。

dynamic_frame.toDF().withColumn('int_array', col('myemptyarray').cast('array<int>'))

我想你可以在这里使用resolveChoice,就像在官方文档中解释的那样

dynamic_frame.resolveChoice(specs = [('int_array','cast:array<int>')])

相关内容

  • 没有找到相关文章

最新更新