예제 #1
0
    def learning_to_rank(self):
        """use Learn_to_rank method to rank the charts"""
        self.error_throw('rank')

        instance = Instance(self.table_name)
        instance.addTable(Table_LTR(instance, False, '', ''))
        if self.import_method == 'mysql':
            instance = self.mysql_handle(instance)
        elif self.import_method == 'csv':
            instance = self.csv_handle(instance)

        instance = self.rank_generate_all_views(instance)
        instance.getScore_learning_to_rank()

        self.instance = instance
        self.rank_method = methods_of_ranking[1]
        return
예제 #2
0
    def diversified_ranking(self):
        """use diversified ranking method to rank the charts"""
        self.error_throw('rank')
        instance = Instance(self.table_name)
        instance.addTable(
            Table(instance, False, '',
                  ''))  # 'False'->transformed '',''->no describe yet
        if self.import_method == 'mysql':
            instance = self.mysql_handle(instance)
        elif self.import_method == 'csv':
            instance = self.csv_handle(instance)

        instance = self.rank_generate_all_views(instance)
        instance.getM()
        instance.getW()
        instance.getScore()

        self.instance = instance
        self.rank_method = methods_of_ranking[3]
        return
예제 #3
0
    for i in des:
        colnames = i[0].split(".")
        if ('1' in colnames[1]):
            continue
        else:
            column_names.append(colnames[1])
            column_types.append(i[1])

    para = ""
    for i in column_names:
        para += i + ","
    para = para[0:-1]
    # get data
    cur.execute("SELECT " + para + " FROM " + dbArgs[3])
    instance = Instance(dbArgs[3])
    instance.addTable(Table(instance, False, '', ''))
    instance.tables[0].D = map(list, cur.fetchall())
    # 新的1t数据soldtime列的hive数据类型为date(对应python的string),需要转为hive的timestamp(对应python的datetime)
    for i in range(len(column_types)):
        if column_types[i] == 'DATE':
            for j in instance.tables[0].D:
                j[i] = datetime.strptime(j[i], '%Y-%m-%d')
    instance.tuple_num = instance.tables[0].tuple_num = len(
        instance.tables[0].D)
    instance.column_num = instance.tables[0].column_num = len(column_names)
    instance.tables[0].origins = [
        i for i in range(instance.tables[0].column_num)
    ]
    for j in range(instance.column_num):
        instance.tables[0].names.append(column_names[j])
        instance.tables[0].types.append(Type.getType(column_types[j].lower()))
예제 #4
0
table_name,describe,x_name,y_name,chart=sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4],sys.argv[5]
conn=MySQLdb.connect(host='localhost',port=3306,user='******',passwd='Db10204!!',db='dataVisDB',charset='utf8')
cur=conn.cursor()
# print table_name
column_num=cur.execute('describe `'+table_name+'`')
desc=cur.fetchall()
names=[]
types=[]
for i in range(column_num):
    names.append(desc[i][0])
    types.append(Type.getType(desc[i][1].lower()))
tuple_num=cur.execute('select * from `'+table_name+'`')
instance=Instance(table_name,column_num,tuple_num,names,types)
table=Table(instance,'False','','')
table.column_num,table.tuple_num,table.names,table.types=column_num,tuple_num,names,types
table.origins=[i for i in range(column_num)]
instance.D=map(list,cur.fetchall())
cur.close()
conn.close()

#calculate features and get D
table.D=instance.D
table.getFeatures()
instance.addTable(table)

navigation=Navigation(instance,describe,x_name,y_name,chart)
navigation.changeX()
navigation.changeY()
navigation.changeBin()
navigation.changeChart()
navigation.findSimilar()