Apache Beam ist das Framework, das Google in seinem Cloud-Service Dataflow verwendet. Das Verkaufsargument ist, dass sowohl die Stapelverarbeitung als auch die Streaming-Verarbeitung auf dieselbe Weise geschrieben werden können. Dieses Mal habe ich ein Mindestprogramm in Python geschrieben und es ausgeführt.
pip install apache-beam
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
#Machen Sie zuerst eine Pipeline
p = beam.Pipeline(options=PipelineOptions())
# 1.Stellen Sie das Array auf Pipeline-Eingabe ein (4 Zeilen als Eingabe)
lines = (p
| beam.Create([
'To be, or not to be: that is the question: ',
'Whether \'tis nobler in the mind to suffer ',
'The slings and arrows of outrageous fortune, ',
'Or to take arms against a sea of troubles, ']))
# 2.Legen Sie die Anzahl der Zeichenfolgen jeder Zeile als Konvertierungsverarbeitung fest
word_lengths = lines | beam.Map(len)
# 3.Geben Sie abschließend die Zählnummer an die Standardausgabe aus und beenden Sie den Vorgang
class ExtractWordsFn(beam.DoFn):
def process(self, element):
print(element)
p_end = word_lengths | beam.ParDo(ExtractWordsFn())
p.run()
<apache_beam.runners.direct.direct_runner.DirectPipelineResult at 0x7f6b69c92950>
43
42
45
43
――Es ist einfach, aber jetzt kann ich die Stapelverarbeitung von Apache Beam aus Python ausführen. Von der Installation bis zur Implementierung und Ausführung dauert es ungefähr eine Stunde. ――Ich möchte in Zukunft die Streaming-Verarbeitung ausführen. Es scheint auch, dass Spark Streaming usw. als Engine verwendet werden kann, also würde ich das auch gerne ausprobieren. ――Ich war froh, dass ich das oben Genannte von Bash unter Windows + Jupyter unter Windows ausführen konnte.
Recommended Posts