2017-05-14 1 views
0

Je veux définir une tâche Luigi qui va créer une table dans une base de données Postgres dans AWS. J'ai essayé différentes importations comme:Python - Luigi - Copier dans Postgres

import luigi.contrib.postgres.CopyToTable 
from luigi.contrib.postgres import CopyToTable 
import luigi.contrib.postgres 
from luigi.contrib import postgres 
import luigi.postgres (i thing this is depreceated) 

et je reçois une erreur différentes, mais toujours la même, comme:

AttributeError: module 'luigi.contrib' has no attribute 'postgres' 
ModuleNotFoundError: No module named 'luigi.contrib.postgres' 

Est-ce que quelqu'un sait quel est le problème? Ma tâche est la suivante:

class InsertToRDS(luigi.contrib.postgres.CopyToTable): 

    def requires(self): 
     return ReShape() 

    host = "" 
    database = "" 
    user = "" 
    password = "" # ;) 
    table = "extropy" 

    columns = [("author", "TEXT"), 
       ("file_id", "TEXT"), 
       ("year.month_x", "DATE"), 
       ("subject", "TEXT"), 
       ("subject", "TEXT"), 
       ("file_timestamp", "TEXT"), 
       ("mail_content", "TEXT"), 
       ("next_message", "TEXT"), 
       ("prev_message", "TEXT"), 
       ("year.month_y", "DATE"),] 

Merci d'avance!

+0

think * (ligne 5 - premier bloc de code) – marz

Répondre

1
from luigi.contrib.postgres import CopyToTable 

est la bonne syntaxe et vous pouvez suivre avec ...

class InsertToRDS(CopyToTable): 

êtes-vous sûr luigi installé correctement? Sur la ligne de commande vérifier la sortie:

pip show luigi 

si la version droite apparaît, exécutez python à la ligne de commande et essayez à nouveau la première ligne d'importation. Si cela fonctionne, la façon dont vous exécutez votre programme est borked.