Поддерживает ли BigQuery наследование в своих таблицах?

Существует метод data.table для внутреннего соединения, который очень эффективен для времени и памяти (и необходим для некоторых более крупных data.frames):

library(data.table)

dt1 <- data.table(df1, key = "CustomerId") 
dt2 <- data.table(df2, key = "CustomerId")

joined.dt1.dt.2 <- dt1[dt2]

merge также работает с данными .tables (поскольку он является общим и вызывает merge.data.table)

merge(dt1, dt2)

data.table, зарегистрированный в stackoverflow: Как выполнить операцию слияния данных.table Перевод SQL присоединяется к внешним ключам к синтаксису R data.table . Эффективные альтернативы слиянию для больших данных. Кадры R Как сделать базовое левое внешнее соединение с data.table в R?

Еще одна опция - функция join, найденная в пакете plyr

library(plyr)

join(df1, df2,
     type = "inner")

#   CustomerId Product   State
# 1          2 Toaster Alabama
# 2          4   Radio Alabama
# 3          6   Radio    Ohio

Опции для type: inner, left, right, full.

Из ?join: В отличие от merge, [join] сохраняет порядок x независимо от того, какой тип соединения используется.

0
задан Mikhail Berlyant 24 March 2019 в 17:03
поделиться

1 ответ

BigQuery не имеет первичных или внешних ключей. Вы должны навязать любую семантику, подходящую для таблиц, которые вы храните. Например, у вас может быть две таблицы, связанные столбцом customer_id, и вы можете объединить таблицы, используя этот столбец, несмотря на то, что вам не нужно объявлять, что это первичный ключ в одном или внешний ключ в другом. [111 ]

0
ответ дан Elliott Brossard 24 March 2019 в 17:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: