|
24 | 24 | import uuid
|
25 | 25 |
|
26 | 26 | import six
|
27 |
| -try: |
28 |
| - import pandas |
29 |
| -except ImportError: # pragma: NO COVER |
30 |
| - pandas = None |
31 | 27 |
|
32 | 28 | from google.api_core.exceptions import PreconditionFailed
|
33 | 29 | from google.cloud import bigquery
|
@@ -1248,28 +1244,6 @@ def test_query_iter(self):
|
1248 | 1244 | row_tuples = [r.values() for r in query_job]
|
1249 | 1245 | self.assertEqual(row_tuples, [(1,)])
|
1250 | 1246 |
|
1251 |
| - @unittest.skipIf(pandas is None, 'Requires `pandas`') |
1252 |
| - def test_query_results_to_dataframe(self): |
1253 |
| - QUERY = """ |
1254 |
| - SELECT id, author, time_ts, dead |
1255 |
| - from `bigquery-public-data.hacker_news.comments` |
1256 |
| - LIMIT 10 |
1257 |
| - """ |
1258 |
| - |
1259 |
| - df = Config.CLIENT.query(QUERY).result().to_dataframe() |
1260 |
| - |
1261 |
| - self.assertIsInstance(df, pandas.DataFrame) |
1262 |
| - self.assertEqual(len(df), 10) # verify the number of rows |
1263 |
| - column_names = ['id', 'author', 'time_ts', 'dead'] |
1264 |
| - self.assertEqual(list(df), column_names) # verify the column names |
1265 |
| - exp_datatypes = {'id': int, 'author': str, |
1266 |
| - 'time_ts': pandas.Timestamp, 'dead': bool} |
1267 |
| - for index, row in df.iterrows(): |
1268 |
| - for col in column_names: |
1269 |
| - # all the schema fields are nullable, so None is acceptable |
1270 |
| - if not row[col] is None: |
1271 |
| - self.assertIsInstance(row[col], exp_datatypes[col]) |
1272 |
| - |
1273 | 1247 | def test_query_table_def(self):
|
1274 | 1248 | gs_url = self._write_csv_to_storage(
|
1275 | 1249 | 'bq_external_test' + unique_resource_id(), 'person_ages.csv',
|
@@ -1445,56 +1419,6 @@ def test_create_table_rows_fetch_nested_schema(self):
|
1445 | 1419 | e_favtime = datetime.datetime(*parts[0:6])
|
1446 | 1420 | self.assertEqual(found[7], e_favtime)
|
1447 | 1421 |
|
1448 |
| - def _fetch_dataframe(self, query): |
1449 |
| - return Config.CLIENT.query(query).result().to_dataframe() |
1450 |
| - |
1451 |
| - @unittest.skipIf(pandas is None, 'Requires `pandas`') |
1452 |
| - def test_nested_table_to_dataframe(self): |
1453 |
| - SF = bigquery.SchemaField |
1454 |
| - schema = [ |
1455 |
| - SF('string_col', 'STRING', mode='NULLABLE'), |
1456 |
| - SF('record_col', 'RECORD', mode='NULLABLE', fields=[ |
1457 |
| - SF('nested_string', 'STRING', mode='NULLABLE'), |
1458 |
| - SF('nested_repeated', 'INTEGER', mode='REPEATED'), |
1459 |
| - SF('nested_record', 'RECORD', mode='NULLABLE', fields=[ |
1460 |
| - SF('nested_nested_string', 'STRING', mode='NULLABLE'), |
1461 |
| - ]), |
1462 |
| - ]), |
1463 |
| - ] |
1464 |
| - record = { |
1465 |
| - 'nested_string': 'another string value', |
1466 |
| - 'nested_repeated': [0, 1, 2], |
1467 |
| - 'nested_record': {'nested_nested_string': 'some deep insight'}, |
1468 |
| - } |
1469 |
| - to_insert = [ |
1470 |
| - ('Some value', record) |
1471 |
| - ] |
1472 |
| - table_id = 'test_table' |
1473 |
| - dataset = self.temp_dataset(_make_dataset_id('nested_df')) |
1474 |
| - table_arg = Table(dataset.table(table_id), schema=schema) |
1475 |
| - table = retry_403(Config.CLIENT.create_table)(table_arg) |
1476 |
| - self.to_delete.insert(0, table) |
1477 |
| - Config.CLIENT.create_rows(table, to_insert) |
1478 |
| - QUERY = 'SELECT * from `{}.{}.{}`'.format( |
1479 |
| - Config.CLIENT.project, dataset.dataset_id, table_id) |
1480 |
| - |
1481 |
| - retry = RetryResult(_has_rows, max_tries=8) |
1482 |
| - df = retry(self._fetch_dataframe)(QUERY) |
1483 |
| - |
1484 |
| - self.assertIsInstance(df, pandas.DataFrame) |
1485 |
| - self.assertEqual(len(df), 1) # verify the number of rows |
1486 |
| - exp_columns = ['string_col', 'record_col'] |
1487 |
| - self.assertEqual(list(df), exp_columns) # verify the column names |
1488 |
| - row = df.iloc[0] |
1489 |
| - # verify the row content |
1490 |
| - self.assertEqual(row['string_col'], 'Some value') |
1491 |
| - self.assertEqual(row['record_col'], record) |
1492 |
| - # verify that nested data can be accessed with indices/keys |
1493 |
| - self.assertEqual(row['record_col']['nested_repeated'][0], 0) |
1494 |
| - self.assertEqual( |
1495 |
| - row['record_col']['nested_record']['nested_nested_string'], |
1496 |
| - 'some deep insight') |
1497 |
| - |
1498 | 1422 | def temp_dataset(self, dataset_id):
|
1499 | 1423 | dataset = retry_403(Config.CLIENT.create_dataset)(
|
1500 | 1424 | Dataset(Config.CLIENT.dataset(dataset_id)))
|
|
0 commit comments