有没有办法直接使用Google BigQuery上的数据作为ML Engine支持的ML算法的列车/测试数据?
我在documents中看到的是使用存储在Google云端存储上的数据。
答案 0 :(得分:2)
是的,这是可能的。有关详细指南,请参阅this blog post。 GitHub回购是here,但这是关键的要点。
<强> 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())
答案 1 :(得分:1)
我认为托里提供了一个很好的答案。要添加,请查看Baby weight Example。因此,除了setup.py文件之外,您应该按照here中的描述修改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)