Touchez Apache Beam avec Python

Touchez Apache Beam avec Python 2.7

Apache Beam est le framework que Google utilise dans son service cloud Dataflow. L'argument de vente est que le traitement par lots et le traitement en continu peuvent être écrits de la même manière. Cette fois, j'ai écrit un programme minimum en Python et l'ai exécuté.

Conditions préalables à l'installation d'Apache Beam

Installez Apache Beam

pip install apache-beam

Essayez d'écrire un programme comme celui ci-dessous

  1. Entrez 4 lignes de Shakespeare
  2. Comptez le nombre de caractères dans chaque ligne avec la fonction len
  3. Se termine par la sortie du nombre de caractères sur la sortie standard (à l'origine, il se termine par l'écriture dans DB ou quelque chose, mais cette fois, il est omis)
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions

#Faites d'abord un pipeline
p = beam.Pipeline(options=PipelineOptions())

# 1.Définissez le tableau sur l'entrée du pipeline (4 lignes en entrée)
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.Définissez le nombre de chaînes de caractères de chaque ligne comme traitement de conversion
word_lengths = lines | beam.Map(len)

# 3.Enfin, sortez le nombre de comptage sur la sortie standard et terminez
class ExtractWordsFn(beam.DoFn):
  def process(self, element):
    print(element)
p_end = word_lengths | beam.ParDo(ExtractWordsFn())
p.run()

--Résultats de l'exécution sur Jupyter

<apache_beam.runners.direct.direct_runner.DirectPipelineResult at 0x7f6b69c92950>
43
42
45
43

Résumé

C'est facile, mais j'ai pu exécuter le traitement par lots Apache Beam à partir de Python. Cela prend environ une heure entre l'installation, la mise en œuvre et l'exécution. ――Je souhaite exécuter le traitement en continu à l'avenir. De plus, il semble que Spark Streaming, etc. puisse être utilisé comme moteur, alors j'aimerais essayer cela également. ――J'étais heureux de pouvoir exécuter ce qui précède à partir de Bash sur Windows + Jupyter sur Windows.

Autres références

Recommended Posts

Touchez Apache Beam avec Python
Apache Beam Cheet Sheet [Python]
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Discord en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Essayez d'installer GeoSpark (Apache Sedona) dans un environnement Python
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Modifier les polices en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Lire DXF avec python
Daily AtCoder # 53 en Python
Touchez MySQL depuis Python 3
Séquence de touches en Python
Utilisez config.ini avec Python
Daily AtCoder # 33 en Python
Résoudre ABC168D en Python
Distribution logistique en Python
AtCoder # 7 tous les jours avec Python