def setup(self): datatypes = lambda *types: [validate_data_type(t) for t in types] schema = Schema.from_lists(['name', 'id', 'fid'], datatypes('string', 'int64', 'float64')) table = MockTable(name='pyodps_test_expr_table', schema=schema) self.expr = CollectionExpr(_source_data=table, _schema=schema) self.ctx = ExecuteContext()
def testPandasCompilation(self): import pandas as pd import numpy as np df = pd.DataFrame(np.arange(9).reshape(3, 3), columns=list('abc')) schema = Schema.from_lists(list('abc'), [types.int8] * 3) expr = CollectionExpr(_source_data=df, _schema=schema) expr = expr['a', 'b'] ctx = ExecuteContext() compiler = PandasCompiler(expr.to_dag()) dag = compiler.compile(expr) self.assertEqual(len(dag._graph), 4) topos = dag.topological_sort() self.assertIsInstance(topos[0][0], CollectionExpr) self.assertIsInstance(topos[1][0], Column) self.assertIsInstance(topos[2][0], Column) self.assertIsInstance(topos[3][0], ProjectCollectionExpr)