Ich habe eine Tabelle in AWS redshift gespeichert, die viele Zeilen hat und ich möchte nur eine Teilmenge von ihnen mit einer Spalte "user_id" sammeln. Ich versuche, R mit der dplyr-Bibliothek zu verwenden, um dies zu erreichen (siehe unten).Filtertabelle von redshift Datenbank mit R dplyr
conn_dplyr <- src_postgres('dev',
host = '****',
port = ****,
user = "****",
password = "****")
df <- tbl(conn_dplyr, "redshift_table")
Wenn ich jedoch versuche, über eine Sammlung von Benutzer-IDs zu subsettieren, schlägt es fehl (siehe unten). Kann mir jemand helfen zu verstehen, wie ich die Datentabelle über eine Sammlung von Benutzer-ID-Elementen sammeln kann? Die einzelnen Anrufe funktionieren, aber wenn ich sie kombiniere, schlägt beides fehl. In diesem Fall gibt es nur 2 Benutzer-IDs, aber im Allgemeinen können es Hunderte oder Tausende sein, also möchte ich nicht jeden einzeln machen. Danke für Ihre Hilfe.
df_subset1 <- filter(df, user_id=="2239257806")
df_subset1 <- collect(df_subset1)
df_subset2 <- filter(df, user_id=="22159960")
df_subset2 <- collect(df_subset2)
df_subset_both <- filter(df, user_id==c("2239257806", "22159960"))
df_subset_both <- collect(df_subset_both)
Error in postgresqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not Retrieve the result : ERROR: operator does not exist: character varying = record
HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts.
)