Как читать. Транзакции в феоме данных? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующая задача. У меня есть 50M строк транзакций. Я не могу экспортировать его в файл .txt, но у меня есть связь с моим Hive, и я создал таблицу с транзакциями: Transcation_id Item 1 A 1 B 1 C 2 A 2 A

Я не могу использовать

order_trans <- read.transactions(
  file = "(...)/trans2019.csv",
  format = "single",
  header=TRUE,
  sep = ",",
  cols=c("trans_id","item"),
  rm.duplicates = T,
  encoding = "UTF-16LE")

, потому что это обрезает транзакции.

Я хотел бы сделать то же самое, но вместо «Файл» я хотел бы поместить свой фрейм данных (trans_id, item), но он не работает. Я также пытался:

trans = as(data.frame,"transactions"), но тогда алгоритм apriori дает мне неправильные правила

APPLE - >action_ID

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 07 октября 2019

Вот решения со страницы руководства (см. «Транзакции»):

## example 4: creating transactions from a data.frame with 
## transaction IDs and items (by converting it into a list of transactions first) 
a_df3 <- data.frame(
  TID = c(1,1,2,2,2,3),
  item=c("a","b","a","b","c", "b")
  )
a_df3
trans4 <- as(split(a_df3[,"item"], a_df3[,"TID"]), "transactions")
trans4
inspect(trans4)

## Note: This is very slow for large datasets. It is much faster to 
## read transactions using read.transactions() with format = "single".
## This can be done using an anonymous file.
write.table(a_df3, file = tmp <- file(), row.names = FALSE)
trans4 <- read.transactions(tmp, format = "single",
  header = TRUE, cols = c("TID", "item"))
close(tmp)
inspect(trans4)
...