Добро пожаловать в статью №2 из моей серии, посвященную узлам KNIME Expressions. В этом видео я расскажу о функции соединения как в узлах, так и в узлах Variable Expressions .

Загрузите следующий рабочий процесс здесь: https://hub.knime.com/knimetips/spaces/Public/latest/Column_Expressions_KNIME_TIPS

join() – это простая, но мощная функция, которая поможет улучшить и упростить вашу работу благодаря простоте использования и гибкости.

Если у вас есть следующий рабочий процесс, просто запустите узел Table Creator, чтобы начать работу. Если у вас нет последующего рабочего процесса, загрузите его с KNIME Hub здесь.

Я собрал набор данных, который отражает то, что вы можете найти при экспорте различных видов данных об использовании. Вы увидите имена и должности в дополнение к некоторым числовым столбцам, которые включают дни активности, идентификатор сотрудника и многое другое.

Дважды щелкните узел Выражения столбцов и посмотрите на первый столбец. Я уже назвал его uniqueID. Если вам интересно, как добавить столбец в узел Выражения столбцов, нажмите + или ознакомьтесь с первой статьей из этой серии Введение в узлы выражений KNIME. ».

Выберите столбец uniqueID.

Первое выражение — это объединение, позволяющее объединять данные вместе. Во многих проектах мне часто нужно создать уникальный идентификатор или объединить данные для чего-то другого (например, для сочетания полей «Город» и «Штат»). Соединение принимает много аргументов, и когда вы найдете его в раскрывающемся списке + функция, вы увидите краткое описание функции с несколькими примерами.

В этом первом примере я хочу создать столбец uniqueId, который представляет собой объединение столбцов Name и empId.

Дважды щелкните join() в списке, и вы увидите имя функции, за которым следуют открывающая и закрывающая скобки, добавленные в редактор выражений. Щелкните внутри красной скобки. Поскольку сначала мне нужно Имя, я выбираю его из раскрывающегося списка + столбец. Я хочу, чтобы uniqueId включал тире между этими двумя столбцами. Чтобы вставить дополнительные символы, такие как этот дефис, я просто добавляю запятую после столбца Имя и добавляю дефис в кавычках, за которым следует еще одна запятая. Затем я снова делаю тот же шаг со столбцом empId.

Вот как должно выглядеть ваше выражение:

join(column("Name"), "-",column("empId"))

Если вы не добавите пробел с дополнительными символами, которые вы соединяете, ваша новая объединенная строка будет непрерывной комбинацией того, что вы поместили в функцию соединения. Итак, если вы не добавили пробел, его не будет. Кроме того, если я хочу соединить свои столбцы с числом, я могу просто добавить еще одну запятую и число вне кавычек.

Это будет выглядеть так:

join(column("Name"), "-",column("empId"), 42)

Мы еще не совсем закончили. Хотя в редакторе выражений не обязательно автозавершение кода, подсветка синтаксиса очень удобна, и если вы потратите немного времени на чтение сгенерированных ошибок, вы, как правило, сможете самостоятельно устранять проблемы с синтаксисом.

Если я наведу указатель мыши на красную волнистую линию в выражении, мне сообщат, что закрывающая скобка отсутствует. Как только я добавлю его, выражение переоценится, и красная линия исчезнет. Чтобы быстро убедиться, что выражение работает должным образом, просто нажмите кнопку Оценить.

После нажатия кнопки Оценить я вижу возврат ПЕРВОЙ СТРОКИ из моего набора данных с выражением. Если первая строка ваших данных отсутствует или не соответствует требованиям вашего выражения, этот быстрый просмотр может не дать ожидаемых результатов.

Вы заметите, что в верхней части окна конфигурации первые несколько символов вашего выражения видны в столбце Expression. Это может пригодиться, когда вы устраняете неполадки или имеете много выражений в одном узле.

Чтобы продемонстрировать некоторые возможности и гибкость узла Выражения столбцов, я также включил несколько примеров подходов на основе JavaScript к объединению строковых данных.

ПРИМЕЧАНИЕ. Перед выполнением не забудьте настроить параметры на вкладке "Обработка ошибок", если вы хотите, чтобы узел не работал из-за ошибки скрипта или недопустимых столбцов.

Давайте оставим этот столбец как uniqueId и оставим его как тип данных String. Взгляните на результат. Все выглядит хорошо, соединение сделало то, что мы ожидали!

Двигаясь дальше в рабочем процессе, я использовал узел Table Row To Variable для преобразования Name, Active Days и empID к переменным. Этот узел просто захватывает первую строку моих данных и создает новые переменные на основе имен столбцов.

Переменные в KNIME позволяют работать с данными, которые изменяются или могут быть динамическими в зависимости от пользовательского ввода, ответов API и многого другого. Понимание переменных в KNIME поможет вам открыть некоторые невероятные функциональные возможности, которые улучшат ваши рабочие процессы. На данный момент я просто подчеркиваю общую функциональность этих двух узлов выражений.

Если я дважды щелкну узел Переменные выражения, я увижу расположение, очень похожее на расположение узла Выражения столбцов, за исключением того, что столбец + пропал, отсутствует. Кроме того, параметры вывода type из переменных выражений чрезвычайно ограничены по сравнению с узлом столбцовых выражений.

Функция join() работает так же, и здесь вы можете видеть, что я соединил Name с тире в кавычках, empID, «+» и Days Active, и я вывожу этот новый столбец в виде строковой переменной с именем joinExample. Я выполню и изучу вывод узла, и я увижу, что теперь моя новая строковая переменная с именем joinExample отформатирована именно так, как я хотел.

Это все, что касается функции join() в узлах Expressions. Если у вас есть вопросы или комментарии, пожалуйста, оставьте их ниже. Не забудьте посмотреть обучающее видео по KNIME и узнать о любых статьях, которые вы могли пропустить на knime.tips. Если вам понравилась эта статья, пожалуйста, свяжитесь с нами! Счастливого КНИМИНГА!

Первоначально опубликовано на https://knime.tips.