Google Cloud Dataflow erhält nicht viel Aufmerksamkeit, ist jedoch sehr praktisch, da Sie die Ausführungsumgebung problemlos zwischen lokal und remote wechseln können. Wenn Sie der Meinung sind, dass Sie nur die Standardbibliothek verwenden können, können Sie sie über Liste der Pips oder [Originalinstallation](http: // qiita) installieren. com / orfeon / items / 78ff952052c4bde4bcd3) ist ebenfalls möglich. Dann habe ich versucht herauszufinden, welche Bibliothek vorinstalliert war, da sie nicht herauskam, selbst wenn ich das Dokument kurz durchsucht habe.
Zuallererst ist dieser Bereich, der Optionen einstellt, @ orfeons runder pakuri ...
Optionseinstellungen
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)
Führen Sie "pip freeze" aus, um die Python-Paketliste zu protokollieren.
Ausgabeteil der Paketliste
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)
Im Datenfluss ausführen. Du brauchst vielleicht keine Hallo Welt ...
Pipeline-Ausführung
(p | 'init' >> beam.Create(['hello', 'world'])
| 'inspect' >> beam.Map(inspect_df))
p.run()
Wenn die Pipeline-Ausführung abgeschlossen ist, wird die Paketliste in das Protokoll ausgegeben. Überprüfen Sie sie daher mit der Cloud-Konsole.
In Datenflussdokument können Sie das Protokoll im Bildschirm "Auftragsdetails" von Dataflow überprüfen, ab dem 4. März 2017 jedoch als Stackdriver -> Zur Protokollierung übergehen.
Das Protokoll wird so ausgegeben.Es ist eine Liste von Paketen, die im obigen Protokoll ausgespuckt wurden. ** Stand 4. März 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 |
Liegt es daran, dass tf.transform
angekommen ist? In Cloud ML
ist ~~ TensorFlow ver 0.12 ~~ ** (BEARBEITEN: Die neueste Ver ist hier Sie können es mit Liste überprüfen)) ** Es ist 1.0.0 in Dataflow. scikit-learn scheint ein bisschen alt zu sein.
Obwohl das Staging etwas langsam ist, scheint Dataflow, das problemlos von Jupyter Notebook zwischen lokal und remote wechseln und vom Start bis zum Start einer Instanz ohne Erlaubnis vollständig verwaltet werden kann, ein leistungsstarkes Tool für Anwendungen wie Datenanalyse und maschinelles Lernen zu sein. ist.
Recommended Posts