{"id":9078,"date":"2026-09-21T11:55:53","date_gmt":"2026-09-21T11:55:53","guid":{"rendered":"https:\/\/prwatech.in\/blog\/?p=9078"},"modified":"2026-09-22T15:36:56","modified_gmt":"2026-09-22T15:36:56","slug":"working-with-dataflow","status":"publish","type":"post","link":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/","title":{"rendered":"Working with Dataflow"},"content":{"rendered":"\r\n<h1>Working With Dataflow: From a Local Run to the Cloud<\/h1>\r\n<p>This is the foundational Dataflow lab that the other Dataflow guides in this series build on. It runs the same basic idea, a script that filters text for a pattern, three times: once locally on your own machine, once on Dataflow itself, and once more with a slightly more advanced example that groups and ranks results, the same pattern used in the ETL and BigQuery source Dataflow guides elsewhere in this series.<\/p>\r\n<p>This walks through setting up the lab environment, running a simple pipeline locally to see what it does before involving the cloud at all, then running the equivalent version on Dataflow, and finally a more advanced example that writes ranked output back into Cloud Storage.<\/p>\r\n<h2>Step by Step Process of Working with Dataflow<\/h2>\r\n<h2>Step 1: Clone the Training Repository<\/h2>\r\n<p>Activate Cloud Shell, then run:<\/p>\r\n<p>git clone https:\/\/github.com\/GoogleCloudPlatform\/training-data-analyst<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9079\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png\" alt=\"\" width=\"728\" height=\"127\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png 711w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426-300x53.png 300w\" sizes=\"auto, (max-width: 728px) 100vw, 728px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ls<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9080\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-427.png\" alt=\"\" width=\"767\" height=\"37\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-427.png 754w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-427-300x15.png 300w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 2: Set a Bucket Variable<\/h3>\r\n<p>Create a bucket in the console first, using the same name as your project ID, then set it as a variable:<\/p>\r\n<p>BUCKET=&#8221;your-bucket-name&#8221;<br \/>echo $BUCKET<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"71\" class=\"wp-image-9081\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-428.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-428.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-428-300x34.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n<h3>Step 3: Enable the Dataflow API<\/h3>\r\n\r\n\r\n\r\n<p>Open Menu &gt; API services &gt; Library<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"277\" class=\"wp-image-9082\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-429.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-429.png 465w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-429-300x179.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Search for Dataflow, then click the Dataflow API.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"154\" class=\"wp-image-9083\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-430.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-430.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-430-300x74.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Click Enable<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"249\" class=\"wp-image-9084\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-431.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-431.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-431-300x119.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 4: Move Into the Lab Directory<\/h3>\r\n<p>cd training-data-analyst\/courses\/data_analysis\/lab2\/python<br \/>ls<\/p>\r\n<p>The lab files will be displayed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"56\" class=\"wp-image-9085\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-432.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-432.png 746w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-432-300x23.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 5: Install the Required Packages<\/h3>\r\n<p>Open install_packages.sh to see what it does before running it:<\/p>\r\n<p>nano install_packages.sh<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9089\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/10-1024x53.jpg\" alt=\"\" width=\"677\" height=\"35\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/10-1024x53.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/10-300x16.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/10-768x40.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/10.jpg 1064w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>This file installs the Python components the lab needs.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"164\" class=\"wp-image-9088\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-434.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-434.png 550w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-434-300x89.png 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sudo .\/install_packages.sh<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9090\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/12-1024x40.jpg\" alt=\"\" width=\"791\" height=\"30\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/12-1024x40.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/12-300x12.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/12-768x30.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/12.jpg 1109w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 6: Confirm Your Python Version<\/h3>\r\n<p>pip -V<br \/>pip3 -V<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9091\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-435.png\" alt=\"\" width=\"679\" height=\"137\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-435.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-435-300x61.png 300w\" sizes=\"auto, (max-width: 679px) 100vw, 679px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 7: Run a Simple Pipeline Locally<\/h3>\r\n<p>Open grep.py and look at what it does. This script searches text files for a pattern and runs on Beam&#8217;s DirectRunner by default, meaning it executes right there in Cloud Shell, with no Dataflow job created at all.<\/p>\r\n<p>nano grep.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9092\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/14.jpg\" alt=\"\" width=\"932\" height=\"45\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/14.jpg 968w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/14-300x15.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/14-768x37.jpg 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"588\" class=\"wp-image-9093\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-436.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-436.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-436-300x281.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 python3 grep.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9094\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16-1024x55.jpg\" alt=\"\" width=\"879\" height=\"47\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16-1024x55.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16-300x16.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16-768x41.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16-1200x65.jpg 1200w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/16.jpg 1206w\" sizes=\"auto, (max-width: 879px) 100vw, 879px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Confirm it actually produced output:<\/p>\r\n<p>ls \/tmp<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9095\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/17.jpg\" alt=\"\" width=\"799\" height=\"51\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/17.jpg 936w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/17-300x20.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/17-768x50.jpg 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>cat \/tmp\/output-*<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9096\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-437.png\" alt=\"\" width=\"732\" height=\"130\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-437.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-437-300x54.png 300w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 8: Copy Sample Files Into Your Bucket<\/h3>\r\n<p>gsutil cp ..\/javahelp\/src\/main\/java\/com\/google\/cloud\/training\/dataanalyst\/javahelp\/*.java gs:\/\/$BUCKET\/javahelp<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9097\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-438.png\" alt=\"\" width=\"659\" height=\"248\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-438.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-438-300x113.png 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Confirm they arrived. Open the menu, then Cloud Storage, then your bucket.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"59\" class=\"wp-image-9098\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-439.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-439.png 350w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-439-300x51.png 300w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>The files should be listed there.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"271\" class=\"wp-image-9099\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-440.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-440.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-440-300x129.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 9: Run the Same Idea on Dataflow<\/h3>\r\n<p>Confirm your project and bucket variables are still set correctly:<\/p>\r\n<p>echo $DEVSHELL_PROJECT_ID<br \/>echo $BUCKET<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9102\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22-1024x82.jpg\" alt=\"\" width=\"740\" height=\"59\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22-1024x82.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22-300x24.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22-768x62.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22-1200x97.jpg 1200w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22.jpg 1293w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Open grepc.py, the cloud version of the same script:<\/p>\r\n<p>nano grepc.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9101\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22a.jpg\" alt=\"\" width=\"720\" height=\"36\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22a.jpg 940w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22a-300x15.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/22a-768x38.jpg 768w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Edit its PROJECT and BUCKET values to match your own project ID and bucket name. If both happen to be the same value, you can use that same ID for both.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"645\" class=\"wp-image-9103\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-442.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-442.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-442-292x300.png 292w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Save and exit with control x, then y, then enter, and run it:<\/p>\r\n<p>python3 grepc.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9104\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/24-1024x59.jpg\" alt=\"\" width=\"773\" height=\"44\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/24-1024x59.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/24-300x17.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/24-768x44.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/24.jpg 1199w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><\/figure>\r\n<h3>Step 10: Watch the Job in Dataflow<\/h3>\r\n\r\n\r\n\r\n<p>Open Console &gt;Dataflow &gt; Jobs<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"196\" class=\"wp-image-9105\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-443.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-443.png 388w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-443-300x152.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Open the Job which is executed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9106\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-444.png\" alt=\"\" width=\"620\" height=\"155\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-444.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-444-300x75.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Click the Job Graph.<\/p>\r\n\r\n\r\n\r\n<p>The Graph is displayed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"466\" class=\"wp-image-9107\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-445.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-445.png 504w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-445-300x277.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>In Job Graph on right side you can see the Job info and resource metrics.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"456\" height=\"756\" class=\"wp-image-9108\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-446.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-446.png 456w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-446-181x300.png 181w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 11: A More Advanced Example<\/h3>\r\n<p>is_popular.py goes further than a simple filter, grouping and ranking results rather than just matching a pattern. Open it and look through it before running it.<\/p>\r\n<p>ls<br \/>nano is_popular.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9109\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/30-1024x113.jpg\" alt=\"\" width=\"879\" height=\"97\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/30-1024x113.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/30-300x33.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/30-768x85.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/30.jpg 1031w\" sizes=\"auto, (max-width: 879px) 100vw, 879px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>It will open the file is_popular.py<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"700\" class=\"wp-image-9110\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-447.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-447.png 704w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-447-300x298.png 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-447-150x150.png 150w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Run it, then check the output:<\/p>\r\n<p>python3 .\/is_popular.py<br \/>cat \/tmp\/output-*<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9111\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31-1024x67.jpg\" alt=\"\" width=\"844\" height=\"54\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31-1024x67.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31-300x20.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31-768x50.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31-1200x78.jpg 1200w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/31.jpg 1274w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 python3 .\/is_popular.py\u00a0 &#8211;output_prefix=\/tmp\/myoutput<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9112\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/32-1024x37.jpg\" alt=\"\" width=\"941\" height=\"33\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/32-1024x37.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/32-300x11.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/32-768x28.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/32.jpg 1349w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 nano \/tmp\/myoutput-00000-of-00001<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9113\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/36.jpg\" alt=\"\" width=\"725\" height=\"49\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/36.jpg 830w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/36-300x21.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/36-768x53.jpg 768w\" sizes=\"auto, (max-width: 725px) 100vw, 725px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>It will open the file with output.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9114\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/33-1024x79.jpg\" alt=\"\" width=\"854\" height=\"65\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/33-1024x79.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/33-300x23.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/33-768x59.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/33.jpg 1035w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step 12: Check the Final Output in Your Bucket<\/h3>\r\n<p>Open the menu, then Cloud Storage, then your bucket.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"59\" class=\"wp-image-9115\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-448.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-448.png 350w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-448-300x51.png 300w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Open javahelp\/ folder<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9116\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-449.png\" alt=\"\" width=\"581\" height=\"391\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-449.png 645w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-449-300x202.png 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>The outputs will be stored in it.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"490\" class=\"wp-image-9117\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-450.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-450.png 510w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-450-300x288.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/figure>\r\n<h2>DirectRunner Versus DataflowRunner<\/h2>\r\n<p>The reason this page runs grep.py before grepc.py is to show the same underlying idea two different ways. DirectRunner, the default when no runner is specified, executes a pipeline on the machine you are already on, useful for quickly checking that your logic works before spending time and money running it at scale. DataflowRunner submits the exact same kind of pipeline to run as a managed job in the cloud, which is what you actually want once the data is too large for one machine, or once the job needs to keep running without you watching it.<\/p>\r\n<h2>How This Page Fits With the Other Dataflow Guides<\/h2>\r\n<p>This page is the right starting point in this series, since it shows the DirectRunner versus DataflowRunner distinction that the other three assume you already understand. From here, ETL Processing With Dataflow and BigQuery shows a complete batch pipeline reading a file and writing into BigQuery, Pub\/Sub Stream Processing With Dataflow shows a continuously running pipeline instead of a one time job, and Building a Dataflow Pipeline From a BigQuery Source shows Dataflow reading from BigQuery itself as the input.<\/p>\r\n<h2>Common Mistakes to Avoid<\/h2>\r\n<ul>\r\n<li>Typing pip-V as one word. It needs a space, pip -V, to run as an actual command rather than an unrecognized one.<\/li>\r\n<li>Copying a command with an en dash instead of a real double hyphen. Retype the flag if it fails immediately.<\/li>\r\n<li>Running grepc.py without editing its PROJECT and BUCKET values first. It will fail or write to the wrong place if those still hold placeholder text.<\/li>\r\n<li>Assuming grep.py and grepc.py do fundamentally different things. They demonstrate the same logic under two different runners, not two unrelated scripts.<\/li>\r\n<\/ul>\r\n<p>That covers running a Beam pipeline locally and on Dataflow, across three progressively more advanced examples. To go further, explore <a href=\"https:\/\/prwatech.in\/gcp-training-institutes-in-bangalore\/\"><strong><b>Prwatech&#8217;s Google Cloud training<\/b><\/strong>\u00a0program<\/a>, which includes placement assistance.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Working With Dataflow: From a Local Run to the Cloud This is the foundational Dataflow lab that the other Dataflow guides in this series build on. It runs the same basic idea, a script that filters text for a pattern, three times: once locally on your own machine, once on Dataflow itself, and once more [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1636,1],"tags":[1426,1427,605,699,700,617,683,684,685,611,1400,692],"class_list":["post-9078","post","type-post","status-publish","format-standard","hentry","category-dataflow","category-google-cloud-platform","tag-dataflow","tag-dataflow-gcp","tag-gcp","tag-gcp-certification","tag-gcp-cloud-console","tag-google-cloud","tag-google-cloud-certification","tag-google-cloud-console","tag-google-cloud-courses","tag-google-cloud-platform","tag-google-cloud-platform-tutorial","tag-google-cloud-training"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Working With Dataflow: Local Runs to the Cloud Explained<\/title>\n<meta name=\"description\" content=\"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Working With Dataflow: Local Runs to the Cloud Explained\" \/>\n<meta property=\"og:description\" content=\"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Prwatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prwatech.in\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-21T11:55:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-22T15:36:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png\" \/>\n\t<meta property=\"og:image:width\" content=\"711\" \/>\n\t<meta property=\"og:image:height\" content=\"125\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prwatech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:site\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prwatech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/\",\"url\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/\",\"name\":\"Working With Dataflow: Local Runs to the Cloud Explained\",\"isPartOf\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png\",\"datePublished\":\"2026-09-21T11:55:53+00:00\",\"dateModified\":\"2026-09-22T15:36:56+00:00\",\"author\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\"},\"description\":\"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process\",\"breadcrumb\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage\",\"url\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png\",\"contentUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png\",\"width\":711,\"height\":125},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prwatech.in\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working with Dataflow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prwatech.in\/blog\/#website\",\"url\":\"https:\/\/prwatech.in\/blog\/\",\"name\":\"Prwatech\",\"description\":\"Share Ideas, Start Something Good.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prwatech.in\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\",\"name\":\"Prwatech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"caption\":\"Prwatech\"},\"url\":\"https:\/\/prwatech.in\/blog\/author\/prwatech123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Working With Dataflow: Local Runs to the Cloud Explained","description":"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/","og_locale":"en_US","og_type":"article","og_title":"Working With Dataflow: Local Runs to the Cloud Explained","og_description":"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process","og_url":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/","og_site_name":"Prwatech","article_publisher":"https:\/\/www.facebook.com\/prwatech.in\/","article_published_time":"2026-09-21T11:55:53+00:00","article_modified_time":"2026-09-22T15:36:56+00:00","og_image":[{"width":711,"height":125,"url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png","type":"image\/png"}],"author":"Prwatech","twitter_card":"summary_large_image","twitter_creator":"@Eduprwatech","twitter_site":"@Eduprwatech","twitter_misc":{"Written by":"Prwatech","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/","url":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/","name":"Working With Dataflow: Local Runs to the Cloud Explained","isPartOf":{"@id":"https:\/\/prwatech.in\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage"},"image":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage"},"thumbnailUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png","datePublished":"2026-09-21T11:55:53+00:00","dateModified":"2026-09-22T15:36:56+00:00","author":{"@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3"},"description":"Run the same Beam pipeline locally and on Dataflow across three examples, with the typos and dash errors in the original commands fixed. Step by step process","breadcrumb":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#primaryimage","url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png","contentUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-426.png","width":711,"height":125},{"@type":"BreadcrumbList","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prwatech.in\/blog\/"},{"@type":"ListItem","position":2,"name":"Working with Dataflow"}]},{"@type":"WebSite","@id":"https:\/\/prwatech.in\/blog\/#website","url":"https:\/\/prwatech.in\/blog\/","name":"Prwatech","description":"Share Ideas, Start Something Good.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prwatech.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3","name":"Prwatech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","caption":"Prwatech"},"url":"https:\/\/prwatech.in\/blog\/author\/prwatech123\/"}]}},"_links":{"self":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/comments?post=9078"}],"version-history":[{"count":4,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9078\/revisions"}],"predecessor-version":[{"id":11839,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9078\/revisions\/11839"}],"wp:attachment":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/media?parent=9078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/categories?post=9078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/tags?post=9078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}