Используйте ML Engine напрямую с данными, хранящимися в таблицах Google BigQuery - PullRequest
0 голосов
/ 11 июня 2018

Есть ли способ напрямую использовать данные в Google BigQuery в качестве обучающих / тестовых данных алгоритмов ML, поддерживаемых ML Engine?

То, что я видел в документах , - это использование данных, хранящихся в облачном хранилище Google.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я думаю, что Торри дал хороший ответ.Чтобы добавить к этому, посмотрите Пример веса ребенка .Таким образом, помимо файла setup.py, вы должны изменить файл model.py, как описано в здесь .

Короче говоря:

train_query, eval_query = create_queries()
train_df = query_to_dataframe(train_query)
eval_df = query_to_dataframe(eval_query)
train_x = input_fn(train_df)
0 голосов
/ 11 июня 2018

Да, это возможно.Пожалуйста, обратитесь к этому сообщению в блоге для подробного руководства.Репозиторий GitHub здесь , но вот ключевые выводы.

setup.py

from setuptools import setup

setup(name='trainer',
  version='1.0',
  description='Showing how to use private key',
  url='http://github.com/GoogleCloudPlatform/training-data-analyst',
  author='Google',
  author_email='nobody@google.com',
  license='Apache2',
  packages=['trainer'],
  package_data={'': ['privatekey.json']},
  install_requires=[
      'pandas-gbq==0.4.1',
      'urllib3',
      'google-cloud-bigquery'
  ],
  zip_safe=False)

pkg_query.py

def query_to_dataframe(query):
  import pandas as pd
  import pkgutil
  privatekey = pkgutil.get_data('trainer', 'privatekey.json')
  print(privatekey[:200])
  return pd.read_gbq(query,
                 project_id='cloud-training-demos',
                 dialect='standard',
                 private_key=privatekey)

query = """
SELECT
  year,
  COUNT(1) as num_babies
FROM
  publicdata.samples.natality
WHERE
  year > 2000
GROUP BY
  year
"""

df = query_to_dataframe(query)
print(df.head())
...