У меня есть пользовательский экспорт нескольких таблиц и их столбцов в многоуровневом формате yaml.Пример извлечения изменен с фиктивными значениями:
schemas:
- name: exports
tables:
- name: sugar
description: makes stuff sweet
active_date: 2019-01-07 00:00:00
columns:
- name: color
type: abcd
- name: taste
type: abcd
description: xyz
example: 21352352
- name: structure
type: abcd
description: xyzasaa
example: 10001
- name: salt
description: not that sweet.
makes it salty.
active_date: 2018-12-18 00:00:00
columns:
- name: strength
type: abcdef
description: easy to find
example: 2018-03-03 12:30:00
- name: color
type: abcdeffa
description: not sweet
example: 21352352
- name: quality
type: abcd
description: how much is needed
example: 10001
Мне нужно включить эти данные в таблицу улья, используя некоторые serde.Я знаком с jsonSerde, но, к сожалению, этот формат не поддерживается и поэтому ищу альтернативный путь.Может кто-нибудь предложить оптимальный подход?Может ли regexSerde вообще помочь с тем, чего я пытаюсь достичь?
Таблица кустов. Данные могут быть представлены одним из следующих способов:
<style type="text/css">
table.tableizer-table {
font-size: 12px;
border: 1px solid #CCC;
font-family: Arial, Helvetica, sans-serif;
}
.tableizer-table td {
padding: 4px;
margin: 3px;
border: 1px solid #CCC;
}
.tableizer-table th {
background-color: #104E8B;
color: #FFF;
font-weight: bold;
}
</style>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>Level 1(name)</th><th>Level 2(name)</th><th>Level 2 (type)</th><th>Level 2 (description)</th></tr></thead><tbody>
<tr><td>sugar</td><td>color</td><td>abcd</td><td> </td></tr>
<tr><td>sugar</td><td>taste</td><td>abcd</td><td>xyz</td></tr>
<tr><td>sugar</td><td>structure</td><td>abcd</td><td>xyzasaa</td></tr>
<tr><td>salt</td><td>strength</td><td>abcdef</td><td>easy to find</td></tr>
<tr><td>salt</td><td>color</td><td>abcdeffa</td><td>not sweet</td></tr>
<tr><td>salt</td><td>quality</td><td>abcd</td><td>how much is needed</td></tr>
</tbody></table>
--- или ---
<style type="text/css">
table.tableizer-table {
font-size: 12px;
border: 1px solid #CCC;
font-family: Arial, Helvetica, sans-serif;
}
.tableizer-table td {
padding: 4px;
margin: 3px;
border: 1px solid #CCC;
}
.tableizer-table th {
background-color: #104E8B;
color: #FFF;
font-weight: bold;
}
</style>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>Level 1(name.colum)</th><th>Level 2 (type)</th><th>Level 2 (description)</th></tr></thead><tbody>
<tr><td>sugar.color</td><td>abcd</td><td> </td></tr>
<tr><td>sugar.taste</td><td>abcd</td><td>xyz</td></tr>
<tr><td>sugar.structure</td><td>abcd</td><td>xyzasaa</td></tr>
<tr><td>salt.strength</td><td>abcdef</td><td>easy to find</td></tr>
<tr><td>salt.color</td><td>abcdeffa</td><td>not sweet</td></tr>
<tr><td>salt.quality</td><td>abcd</td><td>how much is needed</td></tr>
</tbody></table>
РЕДАКТИРОВАТЬ: Используя самый простой подход, я смог извлечь ниже:
$ grep -P '(?<=- name: ).*' export.yaml
- name: exports
- name: sugar
- name: color
- name: taste
- name: structure
- name: salt
- name: strength
- name: color
- name: quality
но как мне установить отношения отступов, чтобы результат был похож на:
sugar.color,sugar.taste,sugar.structure
salt.strength,salt.color,salt.quality