JAVA-1848: Moved apache-beam to apache-libraries
This commit is contained in:
		
							parent
							
								
									01bbadab2b
								
							
						
					
					
						commit
						31aba66983
					
				| @ -1,3 +0,0 @@ | |||||||
| ### Relevant Articles: |  | ||||||
| 
 |  | ||||||
| - [Introduction to Apache Beam](https://www.baeldung.com/apache-beam) |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" |  | ||||||
|     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |  | ||||||
|     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |  | ||||||
|     <modelVersion>4.0.0</modelVersion> |  | ||||||
| 
 |  | ||||||
|     <parent> |  | ||||||
|         <groupId>com.baeldung</groupId> |  | ||||||
|         <artifactId>parent-modules</artifactId> |  | ||||||
|         <version>1.0.0-SNAPSHOT</version> |  | ||||||
|     </parent> |  | ||||||
| 
 |  | ||||||
|     <groupId>com.baeldung.apache</groupId> |  | ||||||
|     <artifactId>apache-beam</artifactId> |  | ||||||
|     <version>0.0.1-SNAPSHOT</version> |  | ||||||
| 
 |  | ||||||
|     <dependencies> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>org.apache.beam</groupId> |  | ||||||
|             <artifactId>beam-sdks-java-core</artifactId> |  | ||||||
|             <version>${beam.version}</version> |  | ||||||
|         </dependency> |  | ||||||
|         <!-- runtime scoped --> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>org.apache.beam</groupId> |  | ||||||
|             <artifactId>beam-runners-direct-java</artifactId> |  | ||||||
|             <version>${beam.version}</version> |  | ||||||
|             <scope>runtime</scope> |  | ||||||
|         </dependency> |  | ||||||
|         <!-- test scoped --> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>org.assertj</groupId> |  | ||||||
|             <artifactId>assertj-core</artifactId> |  | ||||||
|             <version>${assertj.version}</version> |  | ||||||
|             <scope>test</scope> |  | ||||||
|         </dependency> |  | ||||||
|     </dependencies> |  | ||||||
| 
 |  | ||||||
|     <properties> |  | ||||||
|         <beam.version>2.19.0</beam.version> |  | ||||||
|         <assertj.version>3.6.1</assertj.version> |  | ||||||
|     </properties> |  | ||||||
| 
 |  | ||||||
| </project> |  | ||||||
| @ -1,71 +0,0 @@ | |||||||
| package com.baeldung.apache.beam.intro; |  | ||||||
| 
 |  | ||||||
| import java.util.Arrays; |  | ||||||
| 
 |  | ||||||
| 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.transforms.Count; |  | ||||||
| import org.apache.beam.sdk.transforms.Filter; |  | ||||||
| import org.apache.beam.sdk.transforms.FlatMapElements; |  | ||||||
| import org.apache.beam.sdk.transforms.MapElements; |  | ||||||
| import org.apache.beam.sdk.values.KV; |  | ||||||
| import org.apache.beam.sdk.values.PCollection; |  | ||||||
| import org.apache.beam.sdk.values.TypeDescriptors; |  | ||||||
| 
 |  | ||||||
| public class WordCount { |  | ||||||
|      |  | ||||||
|     public static boolean wordCount(String inputFilePath, String outputFilePath) { |  | ||||||
|         // We use default options |  | ||||||
|         PipelineOptions options = PipelineOptionsFactory.create(); |  | ||||||
|         // to create the pipeline |  | ||||||
|         Pipeline p = Pipeline.create(options); |  | ||||||
|         // Here is our workflow graph |  | ||||||
|         PCollection<KV<String, Long>> wordCount = p |  | ||||||
|             .apply("(1) Read all lines", TextIO.read().from(inputFilePath)) |  | ||||||
|             .apply("(2) Flatmap to a list of words", FlatMapElements.into(TypeDescriptors.strings()) |  | ||||||
|                 .via(line -> Arrays.asList(line.split("\\s")))) |  | ||||||
|             .apply("(3) Lowercase all", MapElements.into(TypeDescriptors.strings()) |  | ||||||
|                 .via(word -> word.toLowerCase())) |  | ||||||
|             .apply("(4) Trim punctuations", MapElements.into(TypeDescriptors.strings()) |  | ||||||
|                 .via(word -> trim(word))) |  | ||||||
|             .apply("(5) Filter stopwords", Filter.by(word -> !isStopWord(word))) |  | ||||||
|             .apply("(6) Count words", Count.perElement()); |  | ||||||
|         // We convert the PCollection to String so that we can write it to file |  | ||||||
|         wordCount.apply(MapElements.into(TypeDescriptors.strings()) |  | ||||||
|                 .via(count -> count.getKey() + " --> " + count.getValue())) |  | ||||||
|             .apply(TextIO.write().to(outputFilePath)); |  | ||||||
|         // Finally we must run the pipeline, otherwise it's only a definition |  | ||||||
|         p.run().waitUntilFinish();   |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     public static boolean isStopWord(String word) { |  | ||||||
|         String[] stopwords = {"am", "are", "is", "i", "you", "me", |  | ||||||
|                                "he", "she", "they", "them", "was", |  | ||||||
|                                "were", "from", "in", "of", "to", "be", |  | ||||||
|                                "him", "her", "us", "and", "or"}; |  | ||||||
|         for (String stopword : stopwords) { |  | ||||||
|             if (stopword.compareTo(word) == 0) { |  | ||||||
|                 return true; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     public static String trim(String word) { |  | ||||||
|         return word.replace("(","") |  | ||||||
|             .replace(")", "") |  | ||||||
|             .replace(",", "") |  | ||||||
|             .replace(".", "") |  | ||||||
|             .replace("\"", "") |  | ||||||
|             .replace("'", "") |  | ||||||
|             .replace(":", "") |  | ||||||
|             .replace(";", "") |  | ||||||
|             .replace("-", "") |  | ||||||
|             .replace("?", "") |  | ||||||
|             .replace("!", ""); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| @ -1,19 +0,0 @@ | |||||||
| package com.baeldung.apache.beam.intro; |  | ||||||
| 
 |  | ||||||
| import static org.junit.Assert.assertTrue; |  | ||||||
| 
 |  | ||||||
| import org.junit.Ignore; |  | ||||||
| import org.junit.Test; |  | ||||||
| 
 |  | ||||||
| import com.baeldung.apache.beam.intro.WordCount; |  | ||||||
| 
 |  | ||||||
| public class WordCountUnitTest { |  | ||||||
|      |  | ||||||
|     @Test |  | ||||||
|     // @Ignore |  | ||||||
|     public void givenInputFile_whenWordCountRuns_thenJobFinishWithoutError() { |  | ||||||
|         boolean jobDone = WordCount.wordCount("src/test/resources/wordcount.txt", "target/output"); |  | ||||||
|         assertTrue(jobDone); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| @ -1,16 +0,0 @@ | |||||||
| We've all heard the scare stories about North Korea: the homemade nuclear arsenal built while their people starve and then aimed imprecisely at the rest of the world, a  |  | ||||||
| leader so deluded he makes L Ron Hubbard look like a man excessively overburdened with self-doubt and their deep-seated belief that foreign capitalists will invade at any  |  | ||||||
| moment and steal all their bauxite. |  | ||||||
| The popular portrayal of this Marxist nation is something like one of the more harrowing episodes of M*A*S*H, only with the cast of wacky characters replaced by twitchy,  |  | ||||||
| heavily armed Stalinist meth addicts |  | ||||||
| Cracked would like to take a moment to celebrate the good things about North Korea though, the things that the country's enemies prefer to suppress as part of their politically  |  | ||||||
| motivated jealousy. Like how no different to you and me, there's nothing every North Korean likes more after an 18 hour shift at the phosphorus plant than a nice beer to go with  |  | ||||||
| his dried fish ration. Ever attentive to its people's needs and in the twinkling of a decade, North Korea's leadership bought, disassembled, transported and rebuilt a British  |  | ||||||
| brewery in order to discover and reproduce the secrets of beer and then brew the sweet nectar for its hardworking people, up to 18 bottles at a time. And with minimal fatalities.  |  | ||||||
| When was the last time YOUR leader got a beer for YOU, American? (NB do not answer this question if you are Henry Louis Gates). |  | ||||||
| Or how about the fried chicken restaurant that downtown Pyongyang boasts? Yes real chicken, fried and then delivered to your sleeping cube, with optional beer if you like! You  |  | ||||||
| don't even have to remove the feathers or pull out the gizzard yourself. Mostly. Americans must eat their fried chicken from a bucket, like swine, sold by a company so secretive  |  | ||||||
| that even the very blend of seasoning used is intentionally kept from them. And they call North Korea paranoid? |  | ||||||
| And how many nations would entertain the syphilitic, bourgeois ramblings of Bill Clinton let alone permit him anywhere near their proud womenfolk? Only wise Kim Jong Il could see  |  | ||||||
| past Bill's many, many imperfections and treat him with the pity and kindness he deserves, accepting his feeble pleas to pardon the American spies rightly convicted of photographing  |  | ||||||
| the nation's sensitive beetroot fields. |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user