athena使用python创建表

时间:2018-02-16 23:54:11

标签: python pyathena

所有

尝试使用python的pyathenajdbc创建外部表时, 它有错误:

def create_tbl(self):
       #res = None
       full_s3_abs_path = self.check_files()
       conn_db = self.conn()
       #try:
       with conn_db.cursor() as cursor:
            cursor.execute(
             """CREATE EXTERNAL TABLE IF NOT EXISTS %s.%s (
                   ord_no              varchar(40),
                   ord_tmstp           varchar(32),
                   ord_hdr_mdfy_tmstp  varchar(32),
                   actn                varchar(32),
                   doc_type            varchar(20),
                   eod_bus_tmstp       varchar(32),
                   eod_msg             varchar(6),
                   entered_by          varchar(254),
                   entry_type          varchar(20),
                   max_ord_sts_desc    varchar(40),
                   min_ord_sts_desc    varchar(40),
                   mdfy_ts             varchar(32),
                   ord_cmplt_fl        varchar(6),
                   ord_purp            varchar(20),
                   ord_sts             varchar(100),
                   ord_hdr_key         varchar(40),
                   cre_user            varchar(40),
                   max_sts_tmstp       varchar(32),
                   grand_ttl           varchar(32),
                   grand_tax           varchar(32),
                   ln_sub_ttl          varchar(32),
                   str_no              varchar(32),
                   ord_src             varchar(32),
                   bp_id               varchar(40),
                   promo_id            varchar(38),
                   web_shper_id        varchar(32),
                   aff_info_site_tag   varchar(256),
                   aff_type            varchar(20),
                   aff_info_tm         varchar(32),
                   tax_exmpt_id        varchar(40)

            )
            ROW FORMAT DELIMITED
            FIELDS TERMINATED BY '\037'
            LOCATION '%s'
            TBLPROPERTIES (
              'skip.header.line.count'='1');""" % (self.sch_name, self.tbl_nm, full_s3_abs_path)
        )
            print "Athena Table %s Created Successfully" % (self.tbl_nm)
       #except:
       #    print "Unable to create DDL for athena table {}".format(self.tbl_nm)
       #    sys.exit(1)
       #finally:
       #  conn_db.close()

在python 2.7中使用pyathenajdbc驱动程序创建外部表时, 以下是错误:

“”“......('skip.header.line.count'='1');”“”%(self.sch_name,self.tbl_nm,full_s3_abs_path) pyathenajdbc.error.DatabaseError:java.sql.SQLException:无法运行查询

1 个答案:

答案 0 :(得分:0)

这是帮助调试通过CLI或Athena中的SDK提交的DDL时的一个小技巧。尝试检查控制台中的日志(请参阅我对此post的回复),以确切了解您的代码提交给Athena引擎的内容。