[JAVA] Introduction à Apache Beam (1) ~ Lecture et écriture de texte ~

Idée générale

Créez un programme Apache Beam simple pour comprendre son fonctionnement

But de cette fois

Créez un programme qui lit un fichier texte local et l'écrit tel quel

Histoire principale

environnement

IntelliJ


IntelliJ IDEA 2017.3.3 (Ultimate Edition)
Build #IU-173.4301.25, built on January 16, 2018
Licensed to kaito iwatsuki
Subscription is active until January 24, 2019
For educational use only.
JRE: 1.8.0_152-release-1024-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6

Maven : 3.5.2

procédure

Préparation

https://gyazo.com/d68a0b28e4f5a49ddcf77b8ae350ddb3

https://gyazo.com/9f3c75bb7289d485d09bee88b662663b

SimpleBeam.java


import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.TextIO;
import org.apache.beam.sdk.options.PipelineOptions;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.values.PCollection;

public class SimpleBeam {
    public static void main(String[] args){
        PipelineOptions options = PipelineOptionsFactory.create();

        Pipeline p = Pipeline.create(options);
        //Lire le texte
        PCollection<String> textData = p.apply(TextIO.read().from("Sample.txt"));
        //Rédaction de texte
        textData.apply(TextIO.write().to("wordcounts"));
        //Pipeline run
        p.run().waitUntilFinish();
    }
}

Si la dépendance n'est pas résolue, cliquez sur commande + et ajoutez-la comme indiqué dans l'image.

https://gyazo.com/62d3d70f83834da1d5cd610a056d2333

https://gyazo.com/323bde1aca3e1cff001c792f0f80e767

https://gyazo.com/c31e09c23800d61222d87624844c8be3

Courir

https://gyazo.com/c8896bc73119d76b1d95e2b75e510819

https://gyazo.com/cb53ea8efadaf6e488f9fe5acc2cdf52

https://gyazo.com/3c554c5e5c91074019bf8efc3dbab101

https://gyazo.com/666109229175f8ffa1ca57640a0a1e88

Le résultat est le suivant, et il réussit si le fichier `` wordcounts-. * Est créé dans le répertoire ~ / beamSample`.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.827 s
[INFO] Finished at: 2018-02-27T02:46:10+09:00
[INFO] Final Memory: 21M/373M
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

https://gyazo.com/01ec441970c699e8a2d440f1b1c9e667

En d'autres termes

Cette fois, il n'y a rien qui semble trébucher, mais comme j'ai peu de compréhension du contenu d'IntelliJ, j'étais impatient avec une erreur inconnue à plusieurs reprises. Cependant, la plupart des causes étaient que les dépendances ne pouvaient pas être résolues, donc j'ai réussi à faire ʻAdd_Maven`.

de la prochaine fois

Cette fois, je viens de le déplacer, donc à partir de la prochaine fois, j'aimerais configurer un pipeline simple qui sert également de revue de l'idée de MapReduce.

Recommended Posts

Introduction à Apache Beam (1) ~ Lecture et écriture de texte ~
J'ai essayé de mâcher C # (lire et écrire des fichiers)
Implémenter l'écriture et la lecture dans la liste des propriétés (.plist) dans Swift
[Java] Lecture et écriture de fichiers avec OpenCSV
Introduction à EHRbase 1 - Présentation et maintenance de l'environnement
[Introduction à Java] À propos des déclarations et des types de variables
Lire et écrire des fichiers gzip en Java
Gratter et écrire des éléments spécifiques dans un fichier
[Review] Lecture et écriture de fichiers avec java (JDK6)
Introduction à Ruby 2
N choses à garder à l'esprit lorsque vous lisez «Introduction au printemps» et «Introduction au printemps» à l'ère Reiwa
Apache et Tomcat
Introduction à web3j
Introduction à Micronaut 1 ~ Introduction ~
[Java] Introduction à Java
Introduction à la migration
Introduction à Java
Introduction à Doma
Une brève introduction à terasoluna5, voir le texte ci-dessous