我有下面的spark delta表结构,
+---+------------------------------------------------------+
|id |addresses |
+---+------------------------------------------------------+
|1 |[{"Address":"ABC", "Street": "XXX"}, {"Address":"XYZ", "Street": "YYY"}]|
+---+------------------------------------------------------+
这里的addresses列是一个结构数组。
我需要将数组中的第一个地址从“street”属性值更新为“”,而不更改列表中的第二个元素。
因此,“”应更新为“”,而“xyz”应更新为“yyy”
你可以假设,我在结构中有很多属性,比如street,zipcode等等,所以我想让它们保持不变,只是从street属性更新address的值。
如何在spark、databricks或sql中实现这一点?
模式,
|-- id: string (nullable = true)
|-- addresses: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- Address: string (nullable = true)
| | | | |-- Street: string (nullable = true)
干杯!
1条答案
按热度按时间guicsvcw1#
请检查下面的代码。
更新