当前位置: 首页 > 知识库问答 >
问题:

flink sql展开列并添加索引

鲜于温书
2023-03-14

使用flink sql有没有办法将列表解析为多行并在列表中添加索引?

以下是输入示例:

{
    "uid":"123",
    "imp_content":[
        {"key":"#a#"},
        {"key":"#b#","search_flag":"5"},
        {"key":"#c#","adid":150690},
        {"key":"#d#","search_flag":"0"},
        {"key":"#e#","search_flag":"0"},
        {"key":"#f#","search_flag":"0"},
        {"key":"#g#","search_flag":"5"},
        {"key":"#x#","search_flag":"5"},
        {"key":"#i#","search_flag":"3"}
    ]
}

以下是预期结果:

谢啦

共有1个答案

从烈
2023-03-14

下面是一个执行类似操作的示例。给定此表:

CREATE TABLE `flink_commits` (
  `author` VARCHAR(2147483647),
  `authorDate` TIMESTAMP(3),
  `authorEmail` VARCHAR(2147483647),
  `commitDate` TIMESTAMP(3),
  `committer` VARCHAR(2147483647),
  `committerEmail` VARCHAR(2147483647),
  `filesChanged` ARRAY<ROW<`filename` VARCHAR(2147483647), `linesAdded` INT, `linesChanged` INT, `linesRemoved` INT>>,
  `sha1` VARCHAR(2147483647),
  `shortInfo` VARCHAR(2147483647),
  WATERMARK FOR `commitDate` AS `commitDate` - INTERVAL '1' DAY
)
COMMENT 'Commits on the master branch of github.com/apache/flink'
WITH (
  'connector' = 'kafka',
  ...
);

您可以这样做:

SELECT
  sha1, filename, added, changed, removed
FROM
  flink_commits
CROSS JOIN UNNEST(filesChanged) AS files (filename, added, changed, removed);
 类似资料:
  • 我想添加一个新列,并将其设置为带有的MultIndex,但我收到一个错误。 我的代码: 错误: 文件"/库/框架/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/indexes/base.py",第3078行,get_loc返回自己。_engine.get_loc(键)文件"熊猫/_libs/index.p

  • 问题内容: 我的MySQL表具有以下结构: 我想将以上三列合并为一列,如下所示: 我想将此“组合”列添加到表的末尾而不破坏原始的3个字段。 问题答案: 创建列: 更新当前值: 自动更新所有未来值:

  • 在此处输入图像说明AddMeetingActivity 我想在一个arraylist中添加4个EditText的字符串值,这些EditText是我键入参与者名称的地方。然后我必须在addmeeting()方法中发送新的列表,但我找不到如何执行。 这是为了让您更清楚地看到我正在尝试做什么,我在4 edittext中输入参与者的邮件,当我单击create按钮时,它应该将我在arraylist中输入的邮

  • 在PostgreSQL中,我想使用SQL语句合并两列并从中创建一个新列。 我正在考虑使用concat(…) ,但有更好的方法吗<最好的方法是什么?

  • 问题内容: 我非常确定应该有一种更Python化的方法来执行此操作-但我想不起来:如何将二维列表合并到一维列表中?有点像zip / map,但是有两个以上的迭代器。 示例-我有以下列表: 我希望有 到目前为止,我想出的是: 但这对我来说似乎不是很优雅/ Pythonic。除了不检查2D数组中的所有“线”是否都具有相同的长度,可以相互添加等等之外,还有什么更好的方法呢? 问题答案:

  • 使用以下数据帧: 我想获得 我分别尝试了和 但我不知道如何将两者结合起来,或者是否有其他方法。