在 Pentaho 中使用变量 JSON 字段
Working with variable JSON fields in Pentaho
我是 Pentaho 的新用户,我正在尝试在 Kettle 步骤中解析 JSON。
我知道如何解析所有不变的 JSON 字段,但有些字段我无法确定其长度,因为它们是数组。在下面的示例中,查看字段 "palavras_chave":
{
"identificacao": "Manejo Floinga. ",
"historico": "A técni.",
"descricao": "A.sasasa ",
"objetivos": "Existem. ",
"sustentabilidade": "Co.",
"vantagens_desvantagens": "VANTAGENS: resi",
"custos": "INVESTIMENTOS e CUSTOS: a",
"direitos": "Tecnologia livre. ",
"instituicao": "Tecnologia ",
"assistencia_manutencao_te": " ",
"experiencia": "Existem cerca de ",
"entraves_adocao": "ENTRAção. ",
"condicoes_requeridas": "Aio.",
"fornecedores": "Sódocumentlarizada.",
"usuarios": "Produtecolementar. ",
"programa": "Eme.",
"avaliacao_impacto": " reidos. ",
"transferencia_tecnologia": "públrsos.",
"outros": "Até 1000 cs",
"visualizacao_tecnologia": "Consu",
"palavras_chave": [
"Caaga",
"uso vel",
"padeireiros",
"manrestal"
],
"referencias": "Livro '.pdf",
"replicabilidade": "Atéa. ",
"fonte": "Meiro"
},
另一段代码:
{
"identificacao": "Manejatinga. ",
"historico": "A técni.",
"descricao": "A.sasasa ",
"objetivos": "Existem. ",
"sustentabilidade": "Co.",
"vantagens_desvantagens": "VANNS: resi",
"custos": "INVESTUSTOS: a",
"direitos": "Tecnologia livre. ",
"instituicao": "Tecnologia ",
"assistencia_manutencao_te": " ",
"experiencia": "Existem cerca de ",
"entraves_adocao": "ENTRAção. ",
"condicoes_requeridas": "Aio.",
"fornecedores": "Sódocumeda.",
"usuarios": "Produtentar. ",
"programa": "Em áre.",
"avaliacao_impacto": " reduzidos. ",
"transferencia_tecnologia": "públicos diversos.",
"outros": "Até 1000 cs",
"visualizacao_tecnologia": "Cong",
"palavras_chave": [
"teste",
"aaaaaaa",
],
如何解析可变长度的输入并在 Kettle 中使用它?如果我在 Python 中编程,我会简单地对数组进行交互,并在循环中使用循环来做我想做的事情。
这里有什么办法吗?是不是概念错了?
您可以执行以下操作:
在JSON输入步骤中解析数组$.palavras_chave
。它会给你一个用逗号分隔的数组元素的字段。连接步骤 Split fields to rows
并用逗号分隔此字段。结果中每个数组元素将为您提供一行。我相信您的问题会有更好的解决方案,但这是我能想到的快速解决方案。
我找到了答案,我正在寻找一种方法来规范化我的数据(我不知道这是以前的术语),来自 pentaho 论坛的一个叫 marabu 的成员提供了帮助。
这样做的方法很简单,我们想要对数据进行归一化,我们应该标记选项 "Rownum in output" 并为其命名,如下所示。
The rownum option
之后,我可以使用 rownum 字段来保留对每个 json 的每个 id 的引用,这样我就可以在关系 dbms 中插入正确的引用。步骤在这里。 the kettle step
我是 Pentaho 的新用户,我正在尝试在 Kettle 步骤中解析 JSON。
我知道如何解析所有不变的 JSON 字段,但有些字段我无法确定其长度,因为它们是数组。在下面的示例中,查看字段 "palavras_chave":
{
"identificacao": "Manejo Floinga. ",
"historico": "A técni.",
"descricao": "A.sasasa ",
"objetivos": "Existem. ",
"sustentabilidade": "Co.",
"vantagens_desvantagens": "VANTAGENS: resi",
"custos": "INVESTIMENTOS e CUSTOS: a",
"direitos": "Tecnologia livre. ",
"instituicao": "Tecnologia ",
"assistencia_manutencao_te": " ",
"experiencia": "Existem cerca de ",
"entraves_adocao": "ENTRAção. ",
"condicoes_requeridas": "Aio.",
"fornecedores": "Sódocumentlarizada.",
"usuarios": "Produtecolementar. ",
"programa": "Eme.",
"avaliacao_impacto": " reidos. ",
"transferencia_tecnologia": "públrsos.",
"outros": "Até 1000 cs",
"visualizacao_tecnologia": "Consu",
"palavras_chave": [
"Caaga",
"uso vel",
"padeireiros",
"manrestal"
],
"referencias": "Livro '.pdf",
"replicabilidade": "Atéa. ",
"fonte": "Meiro"
},
另一段代码:
{
"identificacao": "Manejatinga. ",
"historico": "A técni.",
"descricao": "A.sasasa ",
"objetivos": "Existem. ",
"sustentabilidade": "Co.",
"vantagens_desvantagens": "VANNS: resi",
"custos": "INVESTUSTOS: a",
"direitos": "Tecnologia livre. ",
"instituicao": "Tecnologia ",
"assistencia_manutencao_te": " ",
"experiencia": "Existem cerca de ",
"entraves_adocao": "ENTRAção. ",
"condicoes_requeridas": "Aio.",
"fornecedores": "Sódocumeda.",
"usuarios": "Produtentar. ",
"programa": "Em áre.",
"avaliacao_impacto": " reduzidos. ",
"transferencia_tecnologia": "públicos diversos.",
"outros": "Até 1000 cs",
"visualizacao_tecnologia": "Cong",
"palavras_chave": [
"teste",
"aaaaaaa",
],
如何解析可变长度的输入并在 Kettle 中使用它?如果我在 Python 中编程,我会简单地对数组进行交互,并在循环中使用循环来做我想做的事情。
这里有什么办法吗?是不是概念错了?
您可以执行以下操作:
在JSON输入步骤中解析数组$.palavras_chave
。它会给你一个用逗号分隔的数组元素的字段。连接步骤 Split fields to rows
并用逗号分隔此字段。结果中每个数组元素将为您提供一行。我相信您的问题会有更好的解决方案,但这是我能想到的快速解决方案。
我找到了答案,我正在寻找一种方法来规范化我的数据(我不知道这是以前的术语),来自 pentaho 论坛的一个叫 marabu 的成员提供了帮助。 这样做的方法很简单,我们想要对数据进行归一化,我们应该标记选项 "Rownum in output" 并为其命名,如下所示。 The rownum option
之后,我可以使用 rownum 字段来保留对每个 json 的每个 id 的引用,这样我就可以在关系 dbms 中插入正确的引用。步骤在这里。 the kettle step