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
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
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()))
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()