Пользовательское объединение в Dataprep - PullRequest
0 голосов
/ 02 ноября 2018

Могу ли я объединить две таблицы, используя пользовательские условия, а не равные? Например, у меня есть две таблицы в 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 Ответ

0 голосов
/ 06 ноября 2018

Я думаю, что ваш лучший шанс будет реализовать ваше решение в 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, я не верю, что есть какой-то способ присоединиться к диапазону. Если я правильно понял ваш случай, то у вас есть что-то вроде этого:

enter image description here enter image description here

... и вы хотите получить As и Bs вместо целых отметок в student_data. Возможно, это не самое элегантное решение, но вы можете использовать новую формулу с регистром, что-то вроде этого:

  CASE([(marks >= 0) && (marks < 50),
    'D',
    (marks >= 50) && (marks < 100),
    'C',
    (marks >= 100) && (marks < 150),
    'B',
    (marks >= 150) && (marks <= 200),
    'A'])

Вам просто нужно нажать «Новый шаг» в рецепте, выбрать «Новая формула», а затем добавить его в «Формула». Это должно выглядеть так: enter image description here

Затем вы даже можете использовать «Lookup», чтобы объединить любые другие полезные данные, которые вы можете иметь в таблице data, используя «grade» в качестве ключа поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...