Пользовательское объединение в Dataprep
Могу ли я объединить две таблицы, используя пользовательские условия, а не равные? Например, у меня есть две таблицы в BigQuery. Таблица А имеет 3 столбца start_range
, end_range
а также grade
, Таблица B содержит данные, поступающие из хранилища с использованием облачных функций, и содержит определенный столбец "метки". Я создаю поток в DataPrep таким образом, чтобы объединить эти таблицы, которые должны удовлетворять условию:
SELECT data.grade FROM data INNER JOIN student_data ON student_data.marks BETWEEN data.start_range AND data.end_range
а затем вставьте данные в новую таблицу. Но я не мог найти какое-либо положение для таможенного условия. Только два столбца могут быть сопоставлены для объединения. Любая идея?
1 ответ
Я думаю, что ваш лучший шанс будет реализовать ваше решение в BigQuery:
SELECT
grade, marks
FROM
`project.dataset.student_data` a
JOIN
`project.dataset.data` b
ON
a.marks > b.start_range AND a.marks < b.end_range
Если вы настаиваете на Dataprep, я не верю, что есть возможность присоединиться к диапазону. Если я правильно понял ваш случай, то у вас есть что-то вроде этого:
... и вы хотите получить как и B вместо целых знаков в student_data
, Вероятно, это не самое элегантное решение, но вы можете использовать новую формулу с регистром, что-то вроде этого:
CASE([(marks >= 0) && (marks < 50),
'D',
(marks >= 50) && (marks < 100),
'C',
(marks >= 100) && (marks < 150),
'B',
(marks >= 150) && (marks <= 200),
'A'])
Вам просто нужно нажать "Новый шаг" в рецепте, выбрать "Новая формула", а затем добавить его в "Формула". Это должно выглядеть так:
Тогда вы даже можете использовать "Поиск", чтобы присоединить любые другие полезные данные, которые вы можете иметь в data
таблица с использованием "оценки" в качестве ключа поиска.