Пользовательское объединение в 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 таблица с использованием "оценки" в качестве ключа поиска.

Другие вопросы по тегам