Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

301
Vistas
Escribir datos de R a Redshift problema

He estado tratando de enviar los datos creados en un espacio de trabajo en el servidor R a Redshift. Usando dbWriteTable(), puedo crear la tabla con éxito, pero los datos no se escriben en esta tabla recién creada y se produce el siguiente error:

 > dbWriteTable(con, c("schema", "table"), value = df,append=TRUE, row.names=FALSE) Error in postgresqlpqExec(new.con, sql4) : RS-DBI driver: (could not Retrieve the result : ERROR: syntax error at or near "STDIN" LINE 1: COPY "schema"."table" FROM STDIN ^ )

Notas sobre el código:

  • 'con' se refiere a la conexión Redshift, el código para eso en forma genérica es el siguiente:

     con <- dbConnect(drv, host="host_name", port="port_id", dbname="db_name", user="username", password="password")
  • No puedo dar ejemplos completos con datos debido a restricciones en los datos.

Originalmente, pensé que podría ser un problema de permisos dentro del espacio de trabajo. Pero encontré una solución extremadamente lenta al crear la tabla usando dbSendQuery() y luego recorrer cada fila del marco de datos que deseo insertar en Redshift a través de otra llamada a dbSendQuery(). Esto me dice que el problema debe estar relacionado con algo más que los permisos, ya que puedo completar la tarea de manera ineficiente.

Cualquier comentario o propuesta relacionada con este error es muy apreciada, gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que su aplicación cliente "R" está tratando de usar la sintaxis COPY ... FROM STDIN de Postgres. "FROM STDIN" no es una sintaxis compatible con el comando COPY de Redshift, consulte COPY de Redshift .

Las opciones que podría considerar son insertar fila por fila (como lo estaba haciendo con dbSendQuery()), pero esto será lento, o enviar sus datos a un archivo CSV que se puede cargar en Amazon S3 y desde allí cargar usando COPY con S3 como una fuente de datos (rápido).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda