Google Cloud Dataflow n'attire pas beaucoup d'attention, mais c'est assez pratique car vous pouvez facilement basculer l'environnement d'exécution entre local et distant. De plus, si vous pensez que vous ne pouvez utiliser que la bibliothèque standard, vous pouvez l'installer depuis Pip list ou [Original installation](http: // qiita. com / orfeon / items / 78ff952052c4bde4bcd3) est également possible. Ensuite, j'ai cherché dans Document pour savoir quelle bibliothèque était préinstallée, donc je ne l'ai pas trouvée.
Tout d'abord, les options de réglage, cette zone est le pakuri rond de @ orfeon ...
Paramètres des options
import apache_beam as beam
import apache_beam.transforms.window as window
options = beam.utils.pipeline_options.PipelineOptions()
google_cloud_options = options.view_as(beam.utils.pipeline_options.GoogleCloudOptions)
google_cloud_options.project = '{PROJECTID}'
google_cloud_options.job_name = 'test'
google_cloud_options.staging_location = 'gs://{BUCKET_NAME}/binaries'
google_cloud_options.temp_location = 'gs://{BUCKET_NAME}/temp'
worker_options = options.view_as(beam.utils.pipeline_options.WorkerOptions)
worker_options.max_num_workers = 1
# options.view_as(beam.utils.pipeline_options.StandardOptions).runner = 'DirectRunner'
options.view_as(beam.utils.pipeline_options.StandardOptions).runner = 'DataflowRunner'
p = beam.Pipeline(options=options)
Exécutez pip freeze
pour enregistrer la liste des packages Python.
Partie sortie de la liste des packages
def inspect_df(dat):
import subprocess
import logging
process = subprocess.Popen('pip freeze', shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for line in process.stdout:
logging.info(line)
Exécutez sur Dataflow. Vous n'avez peut-être pas besoin de bonjour le monde ...
Exécution du pipeline
(p | 'init' >> beam.Create(['hello', 'world'])
| 'inspect' >> beam.Map(inspect_df))
p.run()
Une fois l'exécution du pipeline terminée, la liste des packages sera sortie dans le journal, vérifiez-la avec Cloud Console.
Dans Dataflow Document, vous pouvez consulter le journal à partir de l'écran Détails de la tâche de Dataflow, mais à partir du 4 mars 2017, Stackdriver -> Passer à la journalisation.
Le journal est sorti comme ceci.C'est une liste de paquets crachés dans le journal ci-dessus. ** Au 4 mars 2017 **
Package | Version |
---|---|
avro | 1.8.1 |
beautifulsoup4 | 4.5.1 |
bs4 | 0.0.1 |
crcmod | 1.7 |
Cython | 0.25.2 |
dataflow-worker | 0.5.5 |
dill | 0.2.5 |
enum34 | 1.1.6 |
funcsigs | 1.0.2 |
futures | 3.0.5 |
google-api-python-client | 1.6.2 |
google-apitools | 0.5.7 |
google-cloud-dataflow | 0.5.5 |
google-python-cloud-debugger | 1.9 |
googledatastore | 6.4.1 |
grpcio | 1.1.0 |
guppy | 0.1.10 |
httplib2 | 0.9.2 |
mock | 2.0.0 |
nltk | 3.2.1 |
nose | 1.3.7 |
numpy | 1.12.0 |
oauth2client | 2.2.0 |
pandas | 0.18.1 |
pbr | 1.10.0 |
Pillow | 3.4.1 |
proto-google-datastore-v1 | 1.3.1 |
protobuf | 3.0.0 |
protorpc | 0.11.1 |
pyasn1 | 0.2.2 |
pyasn1-modules | 0.0.8 |
python-dateutil | 2.6.0 |
python-gflags | 3.0.6 |
python-snappy | 0.5 |
pytz | 2016.10 |
PyYAML | 3.11 |
requests | 2.10.0 |
rsa | 3.4.2 |
scikit-learn | 0.17.1 |
scipy | 0.17.1 |
six | 1.10.0 |
tensorflow | 1.0.0 |
tensorflow-transform | 0.1.4 |
uritemplate | 3.0.0 |
Est-ce parce que «tf.transform» est arrivé? Dans Cloud ML
, ~~ TensorFlow ver est 0.12 ~~ ** (EDIT: La dernière version est [ici](https://cloud.google.com/ml-engine/docs/concepts/runtime-version-" Vous pouvez le vérifier avec la liste)) ** C'est 1.0.0 dans Dataflow. scikit-learn semble un peu vieux.
Bien que la mise en scène soit un peu lente, Dataflow, qui vous permet de basculer facilement entre local et distant à partir du Jupyter Notebook et d'être entièrement géré du lancement au lancement d'une instance sans autorisation, semble être un outil puissant pour des applications telles que l'analyse de données et l'apprentissage automatique. est.
Recommended Posts