更新DataBricks中String列类型的JSON数据中的特定值

问题描述 投票:0回答:1

我在 databricks 目录中有一个列类型为 String 的表。它包含 JSON,我想从中更新特定值,例如“key1”。我已使用

from_json
将其转换为 json,但无法理解如何更新它。

选择 from_json(tags,'STRUCTKey2: STRING') from 表,其中 id='abc';

我尝试使用以下语法更新查询,但没有一个起作用 -

标签:['Key1'] = 'test1'

标签:`Key1` = 'test1'

标签:Key1 = 'test1'

任何意见表示赞赏,谢谢。

databricks databricks-sql
1个回答
0
投票

没有直接的方法来更新

struct
列。

  • 拆开
    struct
  • 更新特定栏目
  • 使用
    named_struct
  • 重新打包新旧列值

下面很简单

SQL

SELECT    
   named_struct(
      'key1',
      'test1',
      'key2',
      FROM_JSON(
          tags,
          'tags:struct<key1:string, key2:string>'
      ).tags.key2
   )
FROM input
WHERE id = 'abc' 
© www.soinside.com 2019 - 2024. All rights reserved.