Exemple #1
0
    def testPlentyCreate(self):
        del_insts = [self.odps.run_sql('drop table {0}'.format(tn('tmp_pyodps_create_temp_%d' % n))) for n in range(10)]
        [inst.wait_for_completion() for inst in del_insts]

        script = PLENTY_CREATE_CODE.format(
            odps_info=self._get_odps_json(),
            import_paths=utils.to_text(json.dumps(sys.path)),
        )

        script_name = tempfile.gettempdir() + os.sep + 'tmp_' + str(os.getpid()) + '_plenty_script.py'
        with open(script_name, 'wb') as script_file:
            script_file.write(script.encode())
            script_file.close()
        env = copy.deepcopy(os.environ)
        env.update({'WAIT_CLEANUP': '1'})
        subprocess.call([sys.executable, script_name], close_fds=True, env=env)

        sleep(5)
        trial = 4
        case = lambda: all(not self.odps.exist_table(tn('tmp_pyodps_create_temp_%d' % tid)) for tid in range(10))
        while not case():
            trial -= 1
            sleep(5)
            if trial == 0:
                self.assertTrue(case())
    def testUnicodePdDataFrame(self):
        import pandas as pd

        pd_df = pd.DataFrame([['中文'], [to_text('中文2')]], columns=[to_text('字段')])
        df = DataFrame(pd_df)

        r = df['字段'].execute()
        self.assertEqual(to_text('中文'), to_text(r[0][0]))
        self.assertEqual(to_text('中文2'), to_text(r[1][0]))
Exemple #3
0
    def testUnicodePdDataFrame(self):
        import pandas as pd

        pd_df = pd.DataFrame([['中文'], [to_text('中文2')]], columns=[to_text('字段')])
        df = DataFrame(pd_df)

        r = df['字段'].execute()
        self.assertEqual(to_text('中文'), to_text(r[0][0]))
        self.assertEqual(to_text('中文2'), to_text(r[1][0]))
    def testReadNonSelectSQLInstance(self):
        test_table = tn('pyodps_t_tmp_read_non_select_sql_instance')
        self.odps.delete_table(test_table, if_exists=True)
        table = self.odps.create_table(test_table,
                                       schema=Schema.from_lists(['size'],
                                                                ['bigint'],
                                                                ['pt'],
                                                                ['string']),
                                       if_not_exists=True)
        pt_spec = 'pt=20170410'
        table.create_partition(pt_spec)

        inst = self.odps.execute_sql('desc %s' % test_table)

        self.assertRaises((Instance.DownloadSessionCreationError,
                           errors.InstanceTypeNotSupported),
                          lambda: inst.open_reader(use_tunnel=True))
        reader = inst.open_reader()
        self.assertTrue(hasattr(reader, 'raw'))

        inst = self.odps.execute_sql('show partitions %s' % test_table)
        reader = inst.open_reader()
        self.assertTrue(hasattr(reader, 'raw'))
        self.assertIn(utils.to_text(pt_spec), utils.to_text(reader.raw))