Python - Luigi - 复制到Postgres

时间:2017-05-14 20:37:40

标签: python postgresql amazon rds luigi

我想定义一个Luigi任务,该任务将在AWS中的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)

我收到了不同的错误,但总是相似,如:

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

有谁知道这是什么问题?我的任务是下一个:

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"),]

提前致谢!

1 个答案:

答案 0 :(得分:3)

from luigi.contrib.postgres import CopyToTable

是正确的语法,然后您可以跟进......

class InsertToRDS(CopyToTable):
你确定luigi安装正确吗?在命令行中检查输出:

pip show luigi

如果显示正确的版本,请在命令行运行python并再次尝试第一个导入行。如果它在那里工作,那么你运行程序的方式就会受到影响。