Команды постобработки
Команды постобработки запускаются на архитектуре WDC.Платформы v.2.0, в которой возможны подключения нескольких вычислительных узлов.
Команды постобработки выполняются на вычислительном узле на Python.
В предыдущей версии платформы (v 1.0) был доступен был только один вычислительный узел на Spark с OTL-командами (см. http://docs.isgneuro.com/1.0.0/OTL/OTL_commands/OTL_commands/).
Чтобы использовать архитектуру WDC.Платформы v.2.0, нужно в начале запроса указывать: v2 | ..
Если "v2" не указать, то запрос будет выполнен на архитектуре предыдущей версии.
Чтобы в запросе к WDC.Платформы v.2.0 выполнить команды предыдущей версии платформы, то нужно использовать команду otl_v1. Например:
v2 | otl_v1 <# makeresults count=2 #>
Типы параметров:
-
Обязательные параметры – параметры, наличие которых в команде является обязательным.
-
Опциональные параметры – параметры, которые могут отсутствовать в команде. В случае их отсутствия используется значение по умолчанию, определённое для параметров.
Типы значений параметров команд постобработки
Команды используют следующие типы значений параметров и их оформление для корректной обработки:
-
term – буквы, цифры, знак подчеркивания.
Пример: _some_word342
-
string – любые символы, обрамленные в двойные или одинарные кавычки, где: \n – перенос строки.
Пример: "First line. some_word1 some_word2\nSecond line\nThird line"
-
inline – текст, обрамленный символами <# … #>
Пример: <# makeresults count=5 | eval a=8 #>
-
text – либо term, либо string, либо inline.
-
integer – целое число.
-
double – дробное число.
-
numeric – целое или дробное число.
-
boolean – логический тип, принимает значение: true или false.
otl_v1
Команда запускает otl-запрос на архитектуре WDC.Платформы v.1.0.
Синтаксис команды
| otl_v1 <code>[, timeout=<integer1>][, cache_ttl=<integer2>]
Обязательный параметр:
- code – текст otl-запроса для работы на WDC.Платформе v.1.0. Тип: text, чаще всего используется inline.
Опциональные параметры:
-
timeout=<integer1> – время ожидания ответа в секундах – тип: integer. Если запрос за это время не будет выполнен, то он завершается с ошибкой.
Значение по умолчанию: 60.
-
cache_ttl=<integer2> – время хранения результата запроса в секундах – тип: integer.
Значение по умолчанию: 60.
Пример использования
Запрос:
otl_v1 <# makeresults count=4 | eval a=3 #>, timeout=15, cache_ttl=10
Результат выполнения:
Index | _time | a |
---|---|---|
0 | 1680009770 | 3 |
1 | 1680009770 | 3 |
2 | 1680009770 | 3 |
3 | 1680009770 | 3 |
datalines
Команда принимает csv-файл в качестве первого параметра и создает из него таблицу данных.
Синтаксис команды
| datalines <data>[, sep=<string>]
Обязательный параметр:
- data – строка, содержащая csv-выражение (тип: string).
Опциональный параметр:
- sep=<string> – разделитель, используемый в csv-выражении (тип: string). Значение по умолчанию: "," (запятая).
Пример использования
Запрос:
| datalines "a,b,c\n1.2,2,3\n2.3,4,5", sep=","
Результат выполнения:
a | b | c | |
---|---|---|---|
0 | 1.2 | 2 | 3 |
1 | 2.3 | 4 | 5 |
ensure
Команда добавляет столбцы с указанными именами, если они ранее отсутствовали в таблице данных.
Синтаксис команды
| ensure <column-list>
Обязательный параметр:
-
column-list – перечень имён столбцов (через запятую), которые следует добавить в таблицу данных. Тип: text.
Синтаксис: <column1>, <column2>, ...
Пример использования
Исходные данные:
a | b | c | |
---|---|---|---|
0 | 0.438921 | 0.118680 | 0.863670 |
1 | 0.138138 | 0.577363 | 0.686602 |
2 | 0.595307 | 0.564592 | 0.520630 |
3 | 0.913052 | 0.926075 | 0.616184 |
Запрос:
| readFile a.csv | ensure c,d,f
Результат выполнения:
a | b | c | d | f | |
---|---|---|---|---|---|
0 | 0.438921 | 0.118680 | 0.863670 | NaN | NaN |
1 | 0.138138 | 0.577363 | 0.686602 | NaN | NaN |
2 | 0.595307 | 0.564592 | 0.520630 | NaN | NaN |
3 | 0.913052 | 0.926075 | 0.616184 | NaN | NaN |
fields
Команда возвращает набор данных с заданными столбцами.
Синтаксис команды
| fields <field-list>
Обязательный параметр:
-
field-list – список имён столбцов (через запятую), которые следует добавить в таблицу данных. Тип: text.
Синтаксис: <field1>, <field2>, ...
Пример использования
Исходные данные:
a | b | c | |
---|---|---|---|
0 | 0.438921 | 0.118680 | 0.863670 |
1 | 0.138138 | 0.577363 | 0.686602 |
2 | 0.595307 | 0.564592 | 0.520630 |
3 | 0.913052 | 0.926075 | 0.616184 |
4 | 0.078718 | 0.854477 | 0.898725 |
5 | 0.076404 | 0.523211 | 0.591538 |
6 | 0.792342 | 0.216974 | 0.564056 |
7 | 0.397890 | 0.454131 | 0.915716 |
8 | 0.074315 | 0.437913 | 0.019794 |
9 | 0.559209 | 0.502065 | 0.026437 |
Запрос:
| readFile a.csv | fields a,b
Результат выполнения:
a | b | |
---|---|---|
0 | 0.438921 | 0.118680 |
1 | 0.138138 | 0.577363 |
2 | 0.595307 | 0.564592 |
3 | 0.913052 | 0.926075 |
4 | 0.078718 | 0.854477 |
5 | 0.076404 | 0.523211 |
6 | 0.792342 | 0.216974 |
7 | 0.397890 | 0.454131 |
8 | 0.074315 | 0.437913 |
9 | 0.559209 | 0.502065 |
head
Команда возвращает первые n строк.
Синтаксис команды
| head [<number>]
Опциональный параметр:
-
number – количество возвращаемых строк – тип: integer.
Значение по умолчанию: 10.
Пример использования
Исходные данные:
a | b | c | |
---|---|---|---|
0 | 0.438921 | 0.118680 | 0.863670 |
1 | 0.138138 | 0.577363 | 0.686602 |
2 | 0.595307 | 0.564592 | 0.520630 |
3 | 0.913052 | 0.926075 | 0.616184 |
4 | 0.078718 | 0.854477 | 0.898725 |
5 | 0.076404 | 0.523211 | 0.591538 |
6 | 0.792342 | 0.216974 | 0.564056 |
7 | 0.397890 | 0.454131 | 0.915716 |
8 | 0.074315 | 0.437913 | 0.019794 |
9 | 0.559209 | 0.502065 | 0.026437 |
Запрос:
| read a.csv | head 3
Результат выполнения:
a | b | |
---|---|---|
0 | 0.438921 | 0.118680 |
1 | 0.138138 | 0.577363 |
2 | 0.595307 | 0.564592 |
mapcolumns
Команда переименовывает столбцы в наборе данных, используя подзапрос, задающий сопоставление имен столбцов.
Синтаксис команды
| mapcolumns [source=<old_name>][, target=<new_name>,] <mapping_df>
Обязательный параметр:
- mapping_df – подзапрос, содержащий служебную таблицу с сопоставлением имён столбцов – тип: subsearch. Подзапрос заключается в квадратные скобки.
Опциональные параметры:
-
source=<old_name> – столбец служебной таблицы, указанной в подзапросе, содержащий имена столбцов основной таблицы, которые требуется изменить.
По умолчанию используется короткое имя столбца основной таблицы.
-
target=<new_name> – столбец служебной таблицы, указанной в подзапросе, содержащий новые имена для столбцов основной таблицы.
По умолчанию используется длинное имя столбца основной таблицы.
Пример использования
Исходные данные:
Файл map.csv содержит служебную таблицу с сопоставлением старых и новых имён столбцов для основной таблицы:
| readFile map.csv
old_names | new_names | |
---|---|---|
0 | A | A_new_name |
1 | B | B_new_name |
Файл d.csv содержит основную таблицу данных, в которой нужно переименовать столбцы:
| readFile d.csv
date | A | B | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
Запрос:
| readFile d.csv | mapcolumns source=old_names, target=new_names, [readFile map.csv]
Результат выполнения:
date | A_new_name | B_new_name | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
orderby
Команда сортирует строки таблицы данных по значениям в заданных столбцах.
Синтаксис команды
| orderby [<columns>][, asc=<bool>]>
Опциональные параметры:
-
columns – список столбцов для сортировки (через запятую) – тип: text.
Синтаксис: <column1>, <column2>, ...
-
asc=<bool>:
-
если asc=True, то строки будут сортироваться по возрастанию значений в заданных столбцах.
-
если asc=False, то строки будут отсортированы по убыванию значений в заданных столбцах.
Значение по умолчанию: True.
-
Примеры использования
Исходные данные:
| readFile d.csv
date | A | B | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
Пример 1
Выполнить сортировку строк набора данных по убыванию значений в столбце A:
| readFile d.csv | orderby A, asc=False
date | A | B | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
Пример 2
Выполнить сортировку строк набора данных по возрастанию значений в столбце A:
| readFile d.csv | orderby A
date | A | B | C | D | |
---|---|---|---|---|---|
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
pd_merge
Команда выполняет объединение входного набора данных с набором данных, указанным в подзапросе, по заданным условиям.
Примечание.
Команда использует функцию pandas.DataFrame.merge. Описание pandas-функции см.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html.
Синтаксис команды
| pd_merge <right>, on=<field-list>[, how=<type>]
Обязательные параметры:
-
right – подзапрос, который содержит набор данных (второй), используемый для объединения с входным набором данных (первым) – тип: subsearch. Подзапрос должен быть заключён в квадратные скобки.
-
on=<field-list> – список полей, разделенных запятыми, по которым должно быть выполнено объединение наборов данных – тип: string. Поля должны быть заключены в кавычки.
Синтаксис: <field1>, <field2>, ...
Опциональный параметр:
-
how=<type> – тип выполняемого объединения:
-
left – используются значения только из первого набора данных.
-
right – используются значения только из второго набора данных.
-
inner – выбираются строки, если значения заданных полей присутствуют в обоих наборах данных.
-
outer – берутся строки по значениям из обоих наборов данных, порядок значений аналогичен первому набору.
-
cross – создаётся декартово произведение из обоих наборов, сохраняется порядок значений из первого набора.
Значение по умолчанию: inner.
Синтаксис: how=left | right | inner | outer | cross.
-
Примеры использования
Исходные данные:
| readFile a.csv
a | b | |
---|---|---|
0 | 1 | 10 |
1 | 2 | 20 |
2 | 3 | 30 |
3 | 4 | 40 |
4 | 5 | 50 |
| readFile b.csv
a | c | |
---|---|---|
0 | 1 | 100 |
1 | 2 | 200 |
2 | 3 | 300 |
3 | 6 | 600 |
Пример 1
Объединить наборы данных a.csv и b.csv по столбцу a и типу inner.
| readFile a.csv | pd_merge [readFile b.csv], on="a", how=inner
Итоговый набор данных содержит строки, в которых столбцы а в первом и втором наборах имели идентичные значения.
a | b | c | |
---|---|---|---|
0 | 1 | 10 | 100 |
1 | 2 | 20 | 200 |
2 | 3 | 30 | 300 |
Пример 2
Объединить наборы данных a.csv и b.csv по столбцу a и типу right:
| readFile a.csv | pd_merge [readFile b.csv], on="a", how=right
Итоговый набор данных содержит все строки со значениями столбца а из набора b.csv, а значения, отсутствующие в наборе a.csv, будут заполнены NaN.
a | b | c | |
---|---|---|---|
0 | 1 | 10.0 | 100 |
1 | 2 | 20.0 | 200 |
2 | 3 | 30.0 | 300 |
3 | 6 | NaN | 600 |
Пример 3
Объединить наборы данных a.csv и b.csv по столбцу a и типу left.
| readFile a.csv | pd_merge [readFile b.csv], on="a", how=left
Итоговый набор содержит все строки со значениями столбца а из исходного набора а.csv, а значений, которых нет в наборе b.csv, будут заполнены NaN.
a | b | c | |
---|---|---|---|
0 | 1 | 10 | 100.0 |
1 | 2 | 20 | 200.0 |
2 | 3 | 30 | 300.0 |
3 | 4 | 40 | NaN |
4 | 5 | 50 | NaN |
pddf
Команда вызывает любые pandas.DataFrame-функции (за исключением eval).
Описание pandas-функций находится по ссылке:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html.
Синтаксис команды
| pddf <function>[, <columns>] [, <kwargs>][, subsearch_to_positional_list=<bool>][, subsearch_key=<bool>][, <subsearchs>]
Обязательный параметр:
- function – имя pandas.DataFrame-функции – тип: text.
Опциональные параметры:
-
columns – перечень имён столбцов (через запятую), которые будут переданы в функцию – тип: text. По умолчанию используется весь набор данных.
-
kwargs – перечень аргументов (имена параметров со значениями), разделенных запятыми, которые будут переданы в функцию – тип: string. Значения параметров должны быть заключены в кавычки.
Синтаксис: <arg1>, <arg2>, ...
-
subsearch_to_positional_list=<boolean> – параметр определяет как функция будет принимать наборы данных, заданные в параметре subsearchs:
-
если subsearch_to_positional_list=true, то функция будет принимать их в качестве первого позиционного аргумента;
-
если subsearch_to_positional_list=true, то функция будет их принимать как именованные параметры. Значение по умолчанию: false.
-
-
subsearch_key – имя набора данных, которое будет передано в функцию в качестве именованного параметра – тип: text.
-
subsearchs – перечень подзапросов для передачи в функцию.
Примеры использования
Пример 1 – Использование pandas-функции compare с подзапросом
Найти отличия в наборах данных a.csv и b.csv.
| readFile a.csv
a | b | c | |
---|---|---|---|
0 | 1 | 2 | 3 |
1 | 4 | 5 | 6 |
| readFile b.csv
a | b | c | |
---|---|---|---|
0 | 1 | 2 | 3 |
1 | 4 | 5 | 7 |
Для этого используется pandas-функция compare. В качестве первого аргумента функция принимает набор a.csv, следовательно, команде pddf указываем подзапрос с набором b.csv:
readFile a.csv | pddf compare [readFile b.csv]
Результат отображён в таблице:
с | self | other |
---|---|---|
1 | 6.0 | 7.0 |
Пример 2 – Использование pandas-функции query
В наборе данных a.csv отфильтровать все строки, в которых столбец а имеет значение 1.
Для этого вызывается pandas-функция query, которая принимает аргумент expr, равный "a==1":
| readFile a.csv | pddf query, expr="a==1"
a | b | c | |
---|---|---|---|
0 | 1 | 2 | 3 |
Пример 3 – Использование pandas-функции round
В наборе данных d.csv требуется округлить дробные числа до двух знаков после запятой:
| readFile d.csv
date | A | B | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.075770 | -0.109050 | 1.643563 | -1.469388 |
1 | 2013-01-02 | 0.357021 | -0.674600 | -1.776904 | -0.968914 |
2 | 2013-01-03 | -1.294524 | 0.413738 | 0.276662 | -0.472035 |
3 | 2013-01-04 | -0.013960 | -0.362543 | -0.006154 | -0.923061 |
4 | 2013-01-05 | 0.895717 | 0.805244 | -1.206412 | 2.565646 |
Вызывается pandas-функции round, которая принимает аргумент decimals (количество знаков после запятой, которые следует оставить):
readFile d.csv | pddf round, decimals=2
date | A | B | C | D | |
---|---|---|---|---|---|
0 | 2013-01-01 | 1.08 | -0.11 | 1.64 | -1.47 |
1 | 2013-01-02 | 0.36 | -0.67 | -1.78 | -0.97 |
2 | 2013-01-03 | -1.29 | 0.41 | 0.28 | -0.47 |
3 | 2013-01-04 | -0.01 | -0.36 | -0.01 | -0.92 |
4 | 2013-01-05 | 0.90 | 0.81 | -1.21 | 2.57 |
Пример 4
В наборе данных d.csv требуется оставить столбцы А и В и округлить в них дробные числа до двух знаков после запятой.
Т.к. в pandas-функцию round требуется передать только два столбца, используем параметр columns:
readFile с.csv | pddf round,A,B decimals=2
A | B | |
---|---|---|
0 | 1.08 | -0.11 |
1 | 0.36 | -0.67 |
2 | -1.29 | 0.41 |
3 | -0.01 | -0.36 |
4 | 0.90 | 0.81 |
rand
Команда добавляет столбец со случайными целыми числами от 0 до 1000.
Синтаксис команды
| rand <column>[, <count>]
Опциональные параметры:
- column – новое имя столбца – тип: text.
Опциональные параметры:
-
count – количество строк для добавления – тип: integer. Параметр игнорируется, если входной набор данных передан слева (до начала выполнения команды, см. Пример 2).
Значение по умолчанию: 10.
Примеры использования
Пример 1
| rand new_col, 4
new_col | |
---|---|
0 | 444 |
1 | 57 |
2 | 515 |
3 | 742 |
Пример 2
| otl_v1 <# makeresults count=5#> | rand new_col, 2
Index | _time | new_col |
---|---|---|
0 | 1679975374 | 353 |
1 | 1679975374 | 618 |
2 | 1679975374 | 738 |
3 | 1679975374 | 372 |
4 | 1679975374 | 36 |
range
Команда добавляет столбец в набор данных или создает новый, если это первая команда, и заполняет столбцы значениями от a до b по следующим правилам:
-
Если требуется вернуть заданное количество равномерно распределенных чисел в интервале от a до b, то используется параметр number.
-
Если требуется вернуть числа в интервале от a до b с заданным шагом, то используется параметр step.
Важно!
Если на вход слева передается набор данных, то количество строк этого набора должно быть равно количеству значений, полученных при выполнении команды range. В противном случае будет выведена ошибка – см. Пример 5 ниже.
Синтаксис команды
| range <column>, <a>, <b> [, step=<step>] [, number=<num>] [, <dtype>]
Обязательные параметры:
-
column – имя столбца для заполнения его значениями из интервала, заданного параметрами а и b – тип: text. Помещается в двойные кавычки.
-
a – начало интервала. Интервал включает это значение. Тип: number.
-
b – окончание интервала – тип: number. Интервал не содержит это значение, за исключением случаев, когда шаг не является целым числом и при округлении дробных чисел может попасть в заданное значение.
Опциональные параметры:
-
step=<step> – величина, на которую должны различаться соседние значения в столбце column в рамках интервала, заданного параметрами a и b – тип: number.
Значение по умолчанию равно: 1.
-
number=<num> – количество значений, которое должно быть в столбце в рамках интервала, заданного параметрами а и b – тип: number.
-
dtype – pandas-тип данных выходного массива в столбце, заданном параметром column – тип: text. Если параметр не задан, тип данных определяется по параметрам a и b.
Примеры использования
Пример 1
Запрос:
| range "column_name", 10, 30, step=5
Результат:
column_name | |
---|---|
0 | 10 |
1 | 15 |
2 | 20 |
3 | 25 |
Пример 2
Запрос:
| range "column_name", 2,3, step=0.3
Результат:
column_name | |
---|---|
0 | 2.0 |
1 | 2.3 |
2 | 2.6 |
3 | 2.9 |
Пример 3
Запрос:
| range "column_name", 2,3, number=7
Результат:
column_name | |
---|---|
0 | 2.000000 |
1 | 2.166667 |
2 | 2.333333 |
3 | 2.500000 |
4 | 2.666667 |
5 | 2.833333 |
6 | 3.000000 |
Пример 4
Запрос:
| otl_v1 <# makeresults count=2 #> | range "new_col", 2, 7, step=3
Результат:
Index | _time | new_col |
---|---|---|
0 | 1679906285 | 2 |
1 | 1679906285 | 5 |
Пример 5
Пример, когда длина входного набора данных не равна количеству значений:
otl_v1 <# makeresults count=3 #> | range "new_col", 2, 7, step=3
Слева передается набор данных с тремя строками, а чисел от 2 до 7 с интервалом 3 всего два – 2 и 5 (см. предыдущий пример).
В результате будет выведена ошибка:
ValueError: Length of values (2) does not match length of index (3)
Пример 6
Добавить новый новый столбец, указать значения от 2 до 8 с шагом 2 с pandas-типом float:
| range "column_name", 2, 8, step=2 dtype=float
Результат:
column_name | |
---|---|
0 | 2.0 |
1 | 4.0 |
2 | 6.0 |
readFile
Команда readFile читает файл из хранилища.
Хранилища настроены в файле config.ini в разделе storages.
Синтаксис команд
| readFile <filename>, type=<type>[, storage=<storage>][, private=<bool>]
Обязательные параметры:
-
filename – имя файла в хранилище. Параметр может включать путь, например: "путь1/путь2/имя_файла.csv".
-
type=<type> – тип файла. Поддерживаемые типы: csv, json, parquet.
Опциональные параметры:
-
storage=<storage> – хранилище для чтения файла. Значение по умолчанию: lookups.
-
private=<bool> – условия чтения файла из пользовательской папки хранилища:
-
если private=true, то файл будет прочитан из пользовательской папки;
-
если private=false, то будет прочитан файл, размещённый в общедоступном месте хранилища, даже если одноимённый файл имеется в пользовательской папке. Значение по умолчанию.
-
Примеры использования
Пример 1
Использование путей в хранилище:
... | readFile "some_folder_in_storage/books.csv, type=csv"
Пример 2
Использование другого хранилища:
... | readFile "some_folder_in_storage/books.csv, type=csv, storage=pp_shared"
Пример 3
Использование личной папки пользователя:
... | readFile "some_folder_in_storage/books.csv, type=csv, storage=pp_shared", private=true
rename
Команда переименовывает столбцы набора данных.
Синтаксис команд
| rename <field> AS <newfield>[, ...]
Обязательный параметр:
-
<field> AS <newfield>, где:
-
field – имя столбца,
-
newfield – новое имя столбца.
Имена с пробелами должны быть заключены в кавычки.
-
Пример использования
... | rename _time AS Time, p50 AS Median, p25 AS Quartile
str_match
Команда находит строки или регулярное выражение в столбцах. Если передаётся несколько столбцов, то результирующий набор данных включает все совпадения во всех столбцах.
Синтаксис команды
| str_match <column>=<val>, …
Обязательный параметр:
-
<column>=<val>, где:
-
column – имя столбца,
-
val – значение в виде последовательности символов или регулярного выражения.
-
Пример использования
Исходные данные:
Входной набор данных:
a | b | c | |
---|---|---|---|
0 | ab11c | dfag | bbbl33asdd |
1 | zdf | fffa22fff | znowaty |
2 | zd111f | fffa22fff | zno33waty |
Пример 1
Найти строку таблицы, имеющую в столбце c значение, начинающееся с "zno33":
| readFile test.csv | str_match c="zno33"
a | b | c | |
---|---|---|---|
2 | zd111f | fffa22fff | zno33waty |
Пример 2
Найти строки, имеющие значения, соответствующие регулярному выражению ".*11.*":
| readFile test.csv | str_match a=".*11.*"
a | b | c | |
---|---|---|---|
0 | ab11c | dfag | bbbl33asdd |
2 | zd111f | fffa22fff | zno33waty |
Пример 3
Найти строки таблицы, содержащие в столбце a регулярное выражение ".*c" или в столбце c – регулярное выражение "\^zno3":
| readFile test.csv | str_match a=".*c", c="^zno3"
a | b | c | |
---|---|---|---|
0 | ab11c | dfag | bbbl33asdd |
2 | zd111f | fffa22fff | zno33waty |
writeFile
Команда writeFile записывает файл в хранилище.
Хранилища настроены в файле config.ini в разделе storages.
Синтаксис команд
| writeFile <filename>, type=<type>[, storage=<storage>][, private=<bool>][,mode=<mode>]
Обязательные параметры:
-
filename – имя файла в хранилище. Параметр может включать путь, например: "путь1/путь2/имя_файла.csv".
-
type=<type> – тип файла. Поддерживаемые типы: csv, json, parquet.
Опциональные параметры:
-
storage=<storage> – хранилище для сохранения (чтения) файла. Значение по умолчанию: lookups.
-
private=<bool> – условие сохранения файла в пользовательскую папку хранилища:
-
если private=true, то файл будет сохранён в пользовательскую папку хранилища.
-
если private=false, то файл будет сохранён в общедоступную папку. Значение по умолчанию.
-
-
mode=<mode> – режим записи.
Возможные значения:
-
overwrite – перезаписать файл в хранилище. Значение по умолчанию.
-
append – добавить набор данных в файл.
Важно!
Убедитесь, что в режиме добавления набор данных имеет те же столбцы, что и целевой файл. Иначе файл результата будет поврежден или возникнет исключение. -
ignore – игнорировать операцию записи, если файл уже существует.
-
Пример использования
Использование режима добавления (mode=append) в writeFile:
... | writeFile books.csv, mode=append