def setup_cfg(nid, role, job_id, method, table_name=None, y_id=-1, model_name=None): cfg = base_cfg.copy() cfg['local'] = {'role': role, 'party_id': ROLES[role]} cfg['role'] = {key: [value] for key, value in ROLES.items()} cfg['WorkFlowParam']['method'] = method data_namespace = gen_data_namespace(nid) if table_name is not None: cfg['WorkFlowParam']['data_input_table'] = table_name cfg['WorkFlowParam']['train_input_table'] = table_name cfg['WorkFlowParam']['predict_input_table'] = table_name cfg['WorkFlowParam']['predict_output_table'] = role + '_predict_table_' + job_id cfg['WorkFlowParam']['evaluation_output_table'] = role + '_evaluation_table_' + job_id cfg['WorkFlowParam']['train_input_namespace'] = data_namespace cfg['WorkFlowParam']['predict_input_namespace'] = data_namespace cfg['WorkFlowParam']['data_input_namespace'] = data_namespace if model_name is not None: cfg['WorkFlowParam']['model_table'] = model_name cfg['WorkFlowParam']['model_namespace'] = gen_model_namespace(nid) cfg['DataIOParam']['with_label'] = (y_id >= 0) cfg['DataIOParam']['label_idx'] = y_id cfg['DataIOParam']['label_type'] = 'int' # if role == consts.GUEST: # if method == 'predict': # cfg['DataIOParam']['with_label'] = False # else: # cfg['DataIOParam']['with_label'] = True # cfg['DataIOParam']['missing_fill'] = True # cfg['DataIOParam']['label_idx'] = 0 # cfg['DataIOParam']['label_type'] = 'int' return json.loads(json.dumps(cfg))
def upload_csv(nid, path, table_name): eggroll_init() # df = pd.read_csv(path, index_col=id_col) # if label_col is not None: # df[label_col] = df[label_col].astype('bool') # kv_data = [(idx, ','.join(row.astype(str).values)) for idx, row in df.iterrows()] kv_data = csv_read_data(path) namespace = gen_data_namespace(nid) return save_data(kv_data, name=table_name, namespace=namespace, error_if_exist=True)
def setup_cfg_json(nid, role, job_id, table, roles): party_id = ROLES[role] cfg = base_cfg.copy() cfg['local'] = {'role': role, 'party_id': party_id} cfg['role'] = {key: [ROLES[key]] for key in (consts.GUEST, consts.HOST)} cfg['WorkFlowParam']['data_input_table'] = table cfg['WorkFlowParam']['data_input_namespace'] = gen_data_namespace(nid) cfg['WorkFlowParam'][ 'intersect_data_output_table'] = role + '_intersect_output_' + job_id return json.loads(json.dumps(cfg))
def show_table(nid, table_name): eggroll_init() table = eggroll.table(table_name, gen_data_namespace(nid)) data = list(table.collect()) print(data)
def del_table(nid, name): eggroll_init() eggroll.cleanup(name, gen_data_namespace(nid), True)
def list_tables(nid): return list_files(gen_data_namespace(nid))