$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> Apache Beam ची विशेषता एरर कशी

Apache Beam ची विशेषता एरर कशी दुरुस्त करावी: "BmsSchema" ऑब्जेक्ट विशेषता-मुक्त आहे. "घटक_प्रकार"

Apache Beam ची विशेषता एरर कशी दुरुस्त करावी: BmsSchema ऑब्जेक्ट विशेषता-मुक्त आहे. घटक_प्रकार
Apache Beam ची विशेषता एरर कशी दुरुस्त करावी: BmsSchema ऑब्जेक्ट विशेषता-मुक्त आहे. घटक_प्रकार

Apache Beam मध्ये DataFrames मध्ये रूपांतरित करताना विशेषता त्रुटी समजून घेणे

एरर कोडिंगचा अपरिहार्य भाग असू शकतात, विशेषत: जेव्हा शक्तिशाली डेटा प्रोसेसिंग टूल्समध्ये डुबकी मारतात अपाचे बीम. काम करताना तुम्हाला "AttributeError" आली असेल तर Apache Beam's to_dataframe मॉड्यूल, तुम्ही एकटे नाही आहात.

या प्रकरणात, रीअल-टाइम डेटा हाताळण्यासाठी Apache Beam पाइपलाइन सेट करताना मला `BmsSchema' ऑब्जेक्टमध्ये 'element_type'` एरर नसलेली विशेषता कशी आली हे मी शेअर करेन. ही त्रुटी बऱ्याचदा गुप्त वाटू शकते, परंतु ती सामान्यत: तुमच्या पाइपलाइनमधील स्कीमा व्याख्येसह समस्या दर्शवते. 🛠️

अपाचे बीम स्केलेबल डेटा पाइपलाइन तयार करण्यासाठी आणि यासारख्या साधनांसह एकत्रित करण्यासाठी उत्कृष्ट आहे Google Pub/Sub आणि BigQuery ते आश्चर्यकारकपणे अष्टपैलू बनवते. तथापि, स्कीमा आणि प्रकार सुसंगतता समस्या, जसे की आम्ही संबोधित करत आहोत, उद्भवू शकतात आणि कार्यप्रवाहात व्यत्यय आणू शकतात. या त्रुटी डीबग केल्याने बीमची स्कीमा अंमलबजावणी आणि डेटाफ्रेम एकत्रीकरण अधिक चांगल्या प्रकारे समजून घेण्यात मदत होते.

येथे, आम्ही या त्रुटीचे कारण शोधू, कोड सेटअपचे परीक्षण करू आणि व्यावहारिक उपायांवर चर्चा करू. काही बदलांसह, तुम्ही या सामान्य अडखळतांना न मारता BigQuery मध्ये Pub/Sub डेटावर यशस्वीपणे प्रक्रिया करू शकाल. 🚀

आज्ञा वापराचे वर्णन
beam.coders.registry.register_coder() Apache Beam मधील एका विशिष्ट वर्गासाठी सानुकूल कोडरची नोंदणी करते, ज्यामुळे बीमला वर्गातील उदाहरणे कार्यक्षमतेने क्रमबद्ध आणि डीसीरियलाइज करता येतात. बीम पाइपलाइनमध्ये NamedTuple प्रकारांसह सानुकूल स्कीमा वापरण्यासाठी आवश्यक.
to_dataframe() Apache Beam PCcollections Pandas DataFrames मध्ये रूपांतरित करते. हे परिवर्तनांसाठी पांडाचा वापर सक्षम करते परंतु बीम स्कीमा आणि डेटाफ्रेम संरचनांमध्ये सुसंगतता आवश्यक आहे, जे काहीवेळा योग्यरित्या हाताळले नाही तर विशेषता त्रुटी निर्माण करू शकतात.
beam.DoFn Apache Beam मध्ये कस्टम प्रोसेसिंग फंक्शन परिभाषित करते. मॉड्यूलर आणि पुन्हा वापरता येण्याजोग्या कोड विभागांना अनुमती देऊन, Pub/Sub संदेश पार्स करण्यासाठी आणि पाइपलाइनमधील प्रत्येक घटकावर परिवर्तन करण्यासाठी कार्ये तयार करण्यासाठी येथे वापरले जाते.
with_output_types() बीम पाइपलाइनमधील ट्रान्सफॉर्म स्टेपचा आउटपुट प्रकार निर्दिष्ट करते. हा आदेश स्कीमा सुसंगतता लागू करतो, जे आउटपुट डेटा अपेक्षित प्रकारांशी सुसंगत असल्याची खात्री करून विशेषता त्रुटी टाळण्यास मदत करते, जसे की NamedTuple स्कीमा.
WriteToBigQuery पाइपलाइनवरून थेट BigQuery सारण्यांमध्ये डेटा लिहितो. ही कमांड BigQuery साठी स्कीमा व्याख्या करण्यास अनुमती देते आणि स्ट्रीमिंग डेटा लेखन ऑपरेशन्स हाताळू शकते, Apache Beam पाइपलाइनमधून रीअल-टाइम डेटा अंतर्ग्रहण करण्यासाठी महत्त्वपूर्ण आहे.
beam.io.ReadFromPubSub Google क्लाउड पब/सबस्क्रिप्शनमधील डेटा वाचतो, Apache Beam मध्ये डेटा स्ट्रीमिंगसाठी स्रोत म्हणून काम करतो. हा आदेश पाइपलाइनचा डेटा प्रवाह सुरू करतो आणि रिअल-टाइम संदेश अंतर्ग्रहण हाताळण्यासाठी कॉन्फिगर केला जातो.
StandardOptions.streaming पाइपलाइनला स्ट्रीमिंग मोडमध्ये ऑपरेट करण्यासाठी कॉन्फिगर करते, ज्यामुळे ते Pub/Sub मधील डेटाच्या सतत प्रवाहांवर प्रक्रिया करू शकते. थेट डेटा अंतर्ग्रहण हाताळण्यासाठी हे सेटिंग आवश्यक आहे आणि पाइपलाइन वेळेपूर्वी संपुष्टात येणार नाही याची खात्री करते.
PipelineOptions प्रोजेक्ट आयडी, रनर प्रकार आणि तात्पुरत्या स्टोरेज स्थानांसह, अपाचे बीम पाइपलाइनसाठी कॉन्फिगरेशन पर्याय सुरू करते. डेटाफ्लो सारख्या क्लाउड वातावरणात पाइपलाइन तैनात करण्यासाठी या सेटिंग्ज महत्त्वपूर्ण आहेत.
beam.ParDo() पाइपलाइनमधील प्रत्येक घटकाला DoFn मध्ये परिभाषित केलेले कस्टम ट्रान्सफॉर्मेशन लागू करते. संदेश पार्स करणे आणि पाइपलाइनमधील वैयक्तिक घटकांवर स्कीमा ट्रान्सफॉर्मेशन लागू करणे यासारखी कार्ये कार्यान्वित करण्यासाठी हा आदेश मध्यवर्ती आहे.

Apache Beam च्या स्कीमा हँडलिंगमधील विशेषता त्रुटींचे निवारण करणे

Apache Beam स्क्रिप्टने Google Cloud Pub/Sub वरून वाचणारी, Pandas सोबत डेटा बदलणारी आणि BigQuery वर लिहिणारी मजबूत डेटा पाइपलाइन सेट करणे हे उद्दिष्ट प्रदान केले आहे. एरर, `BmsSchema' ऑब्जेक्टमध्ये 'element_type' गुणधर्म नसतात, बहुतेक वेळा स्कीमा हाताळणीतील चुकीच्या संरेखनामुळे किंवा बीमच्या प्रकार प्रणाली आणि डेटाफ्रेममधील सुसंगततेमुळे उद्भवते. आमची पहिली स्क्रिप्ट NamedTuple वापरते, विशेषत: सानुकूल स्कीमा वर्ग परिभाषित करून बीम स्कीमासह कार्य करण्यासाठी तयार केलेली, BmsSchema. या वर्गाची नंतर `beam.coders.registry.register_coder()` वापरून डेटा प्रभावीपणे अनुक्रमित आणि डीसीरियलाइज करण्यासाठी नोंदणी केली जाते. उदाहरणार्थ, "आयडेंट" फील्ड असलेले Pub/Sub संदेश हाताळताना, स्कीमा हे फील्ड उपस्थित असल्याचे सुनिश्चित करते आणि स्ट्रिंग म्हणून योग्यरित्या टाइप केले आहे.

स्क्रिप्टमध्ये, `ParsePubSubMessage` DoFn वर्ग प्रत्येक Pub/Sub संदेशावर प्रक्रिया करतो. येथे, स्क्रिप्ट JSON-स्वरूपित डेटा वाचते, ते डीकोड करते आणि नंतर पूर्व-परिभाषित शब्दकोश संरचनेत अद्यतनित करते. तुम्हाला कधीही येणाऱ्या डेटा फील्डला कठोर स्कीमावर मॅप करण्याची आवश्यकता असल्यास, तुम्हाला BigQuery च्या अपेक्षेनुसार फील्डची नावे सुसंगत ठेवण्याचे महत्त्व समजेल. हा दृष्टीकोन आम्हाला अपरिभाषित विशेषतांमधून त्रुटी कमी करून, संपूर्ण पाइपलाइनवर स्कीमा-परिभाषित परिवर्तन लागू करण्यास अनुमती देतो. पाईपलाईन पायऱ्यांवर स्कीमा लागू करण्यासाठी `beam.Map` वापरल्याने डेटा ट्रान्सफॉर्मेशनद्वारे पुढे सरकत असताना सुसंगतता सुव्यवस्थित करण्यात मदत होते. 🛠️

Apache Beam मधील Pandas इंटिग्रेशन `PandasTransform` DoFn वर्गाने साध्य केले जाते, जेथे आम्ही `to_dataframe` फंक्शन वापरून डेटा Pandas DataFrames मध्ये रूपांतरित करतो. ही पायरी पांडाच्या परिवर्तन क्षमतांचा लाभ घेण्यास अनुमती देते, परंतु स्ट्रीमिंग पाइपलाइनमध्ये डेटाफ्रेम वापरताना बीमला सुसंगत डेटा प्रकारांची अपेक्षा असल्याने काळजीपूर्वक स्कीमा हाताळणी आवश्यक आहे. परिवर्तनानंतर, डेटा फ्रेमच्या प्रत्येक पंक्तीवर पुनरावृत्ती होणाऱ्या साध्या लूपचा वापर करून डेटा पुन्हा शब्दकोश स्वरूपात रूपांतरित केला जातो. तुम्ही पांडांसह काम केले असल्यास, हे किती शक्तिशाली असू शकते हे तुम्हाला माहीत आहे, जरी विशेषता त्रुटी टाळण्यासाठी Apache Beam स्कीमासह सुसंगतता सुनिश्चित करणे आवश्यक आहे.

शेवटी, डेटा BigQuery ला `WriteToBigQuery` फंक्शनद्वारे लिहिला जातो, जो BigQuery सारणीमध्ये परिणाम उपयोजित करण्याचा एक महत्त्वाचा टप्पा आहे. ही पायरी BigQuery साठी एका स्कीमासह कॉन्फिगर केली आहे, स्तंभ आणि डेटा प्रकार BigQuery च्या अपेक्षेनुसार संरेखित आहेत याची खात्री करून. स्क्रिप्ट लिहिणे आणि तयार करणे परिभाषित करण्यासाठी `WriteToBigQuery` वापरते, जे डेटा जोडले जावे किंवा ओव्हरराइट करावे आणि ते अस्तित्वात नसल्यास सारण्या तयार कराव्यात की नाही हे नियंत्रित करतात. हा भाग विशेषत: रीअल-टाइम डेटा अंतर्ग्रहण परिस्थितींमध्ये उपयुक्त आहे, कारण तो पाइपलाइनला गतिशीलपणे नवीन सारण्या तयार करण्यास आणि सतत डेटा लेखन हाताळण्यास अनुमती देतो. 🚀

स्कीमा हाताळणीसह अपाचे बीममधील विशेषता त्रुटींचे निराकरण करणे

Apache Beam वापरून Python Script - उपाय 1: NamedTuple सह स्कीमा परिभाषित करणे

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions, StandardOptions
from apache_beam.io.gcp.bigquery import WriteToBigQuery
from apache_beam.dataframe.convert import to_dataframe
import os
import typing
import json
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/your-credentials.json"
# Define schema using NamedTuple for type enforcement
class BmsSchema(typing.NamedTuple):
    ident: str
beam.coders.registry.register_coder(BmsSchema, beam.coders.RowCoder)
# Parses Pub/Sub messages
class ParsePubSubMessage(beam.DoFn):
    def process(self, message):
        all_columns = ['ident']
        main_dict = dict(zip(all_columns, [None] * len(all_columns)))
        record = json.loads(message.decode('utf-8'))
        main_dict.update(record)
        yield {all_columns[0]: main_dict[all_columns[0]]}
# Transforms data with Pandas integration
class PandasTransform(beam.DoFn):
    def process(self, element):
        df = to_dataframe([element])
        for _, row in df.iterrows():
            yield row.to_dict()
def run():
    options = PipelineOptions(
        project='your-project-id',
        runner='DirectRunner',
        streaming=True,
        temp_location='gs://your-temp-location',
        region='your-region')
    options.view_as(StandardOptions).streaming = True
    input_subscription = 'projects/your-project/subscriptions/your-subscription'
    table_schema = {"fields": [{"name": "ident", "type": "STRING", "mode": "ABLE"}]}
    with beam.Pipeline(options=options) as p:
        messages = (
            p | 'Read from PubSub' >> beam.io.ReadFromPubSub(subscription=input_subscription)
              | 'Parse PubSub Message' >> beam.ParDo(ParsePubSubMessage())
              | 'Attach Schema' >> beam.Map(lambda x: BmsSchema(x)).with_output_types(BmsSchema)
              | 'Transform with Pandas' >> beam.ParDo(PandasTransform())
        )
        messages | 'Write to BigQuery' >> WriteToBigQuery(
            table='your_dataset.your_table',
            schema=table_schema,
            write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND,
            create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
            custom_gcs_temp_location='gs://your-temp-location'
        )
if __name__ == '__main__':
    run()

पर्यायी उपाय: वर्ग-आधारित स्कीमासह अपाचे बीममधील स्कीमा विशेषता हाताळणे

Apache Beam वापरून Python Script - उपाय 2: प्रकार तपासणीसह वर्ग-आधारित स्कीमा

Apache Beam च्या स्कीमा रूपांतरणांमधील विशेषता त्रुटींचे निराकरण करणे

सोबत काम करताना अपाचे बीम Google Pub/Sub सारख्या स्त्रोतांकडील डेटावर प्रक्रिया करण्यासाठी आणि BigQuery मध्ये लोड करण्यासाठी, स्कीमा-संबंधित त्रुटींचा सामना करणे ही एक सामान्य अडचण आहे. या त्रुटी, जसे की कुप्रसिद्ध "AttributeError: 'MySchemaClassName' ऑब्जेक्टला कोणतीही विशेषता नाही", अनेकदा घडते कारण बीम स्कीमा व्याख्या आणि पाइपलाइन परिवर्तनांमध्ये प्रकार सुसंगततेची काटेकोरपणे अंमलबजावणी करते. एक महत्त्वाचा पैलू ज्याकडे अनेकदा दुर्लक्ष केले जाते ते म्हणजे बीम डेटा क्रमबद्ध करण्यासाठी कोडर वापरते, ज्यामुळे पांडासारख्या तृतीय-पक्ष साधनांचे एकत्रीकरण करताना समस्या उद्भवू शकतात. सुसंगतता सुनिश्चित करण्यासाठी, सानुकूल स्कीमाची नोंदणी करणे आणि बीम ट्रान्सफॉर्ममध्ये `to_dataframe()` काळजीपूर्वक वापरणे आवश्यक आहे.

उदाहरण पाइपलाइनमध्ये, `beam.DoFn` आणि `beam.Map` चा वापर प्रत्येक डेटा घटकावर मॉड्यूलर परिवर्तनास अनुमती देतो, ज्यामुळे पांडासारख्या बाह्य लायब्ररींचा समावेश करणे सोपे होते. तथापि, `register_coder` किंवा तत्सम कॉन्फिगरेशनद्वारे अचूक स्कीमा नोंदणी न करता, डेटा प्रकार जुळत नसताना Beam विशेषता त्रुटी टाकू शकते. या समस्या विशेषत: रिअल-टाइम प्रक्रियेमध्ये सामान्य आहेत, जेथे येणारा डेटा फॉरमॅटमध्ये थोडासा बदलू शकतो. अशा समस्यांना प्रतिबंध करण्याचा एक सोपा मार्ग म्हणजे येणारा डेटा स्पष्टपणे a मध्ये रूपांतरित करणे पायथन शब्दकोश आणि नंतर `NamedTuple` किंवा संरचित वर्ग वापरून ते पुन्हा स्वरूपित करणे. 🛠️

स्कीमा त्रुटींच्या पलीकडे, बीम पाइपलाइन योग्य त्रुटी हाताळणी आणि चाचणीचा फायदा घेऊ शकतात. प्रत्येक `DoFn` ट्रान्सफॉर्मेशनमध्ये कस्टम व्हॅलिडेटर किंवा टाइप-चेकिंग फंक्शन्स जोडून, ​​तुम्ही स्कीमा-संबंधित समस्या लवकर पकडू शकता. याव्यतिरिक्त, बीम आणि BigQuery टेबल स्कीमा दोन्हीमध्ये स्कीमा माहिती नमूद केल्याने संरेखन सुनिश्चित होते. अशा प्रकारे, BigQuery मधील स्तंभाचा प्रकार तुमच्या स्कीमा व्याख्येशी जुळत नसल्यास, तुम्हाला न शोधता येण्याजोग्या रनटाइम समस्यांना सामोरे जाण्याऐवजी एक माहितीपूर्ण त्रुटी प्राप्त होईल. जरी Apache Beam मध्ये स्कीमा हाताळणे जटिल असू शकते, तरीही ही समायोजने डेटा अखंडता सुधारतात, ज्यामुळे पाइपलाइन अधिक लवचिक आणि विश्वासार्ह बनते. 🚀

Apache Beam स्कीमा त्रुटींबद्दल सामान्यपणे विचारले जाणारे प्रश्न

  1. "AttributeError: 'MySchemaClassName' ऑब्जेक्टमध्ये विशेषता नाही" त्रुटी कशामुळे होते?
  2. ही त्रुटी Apache Beam मध्ये अनेकदा उद्भवते जेव्हा ऑब्जेक्टसाठी परिभाषित स्कीमा आणि प्रक्रिया केल्या जात असलेल्या डेटामध्ये जुळत नाही. स्कीमा वापरून स्पष्टपणे नोंदणीकृत असल्याची खात्री करा beam.coders.registry.register_coder.
  3. मी Apache Beam मध्ये सानुकूल स्कीमाची नोंदणी कशी करू शकतो?
  4. Apache Beam मध्ये, तुम्ही सानुकूल स्कीमा वापरून परिभाषित करू शकता संरचित डेटासाठी, आणि नंतर त्याची नोंदणी करा beam.coders.RowCoder अनुक्रमणिका व्यवस्थापित करण्यासाठी.
  5. वापरण्याचा उद्देश काय आहे to_dataframe बीम पाइपलाइनमध्ये?
  6. to_dataframe बीम पीसी कलेक्शनला पांडस डेटाफ्रेममध्ये रूपांतरित करते, ज्यामुळे तुम्हाला ट्रान्सफॉर्मेशनसाठी Pandas फंक्शन्स वापरता येतात. विशेषता त्रुटी टाळण्यासाठी डेटा स्कीमा-सुसंगत असल्याची खात्री करा.
  7. मी बीम आणि BigQuery मधील प्रकार जुळत नसलेले कसे हाताळू?
  8. BigQuery स्कीमा Beam मध्ये परिभाषित केलेल्या डेटा स्कीमाशी जुळत असल्याची खात्री करा. वापरा स्कीमा अंमलबजावणीसह, आणि पाइपलाइनच्या सुरुवातीला डेटा प्रकार प्रमाणित करा.
  9. पाइपलाइन चालवण्यापूर्वी मी स्कीमा त्रुटी पकडू शकतो का?
  10. होय, प्रत्येकामध्ये सानुकूल प्रमाणीकरण जोडून DoFn वर्ग, पाइपलाइन त्रुटी होण्यापूर्वी तुम्ही डेटा स्वरूप तपासू शकता.
  11. वापरत आहे पेक्षा चांगले beam.DoFn परिवर्तनासाठी?
  12. ते अवलंबून आहे. सरळ बदलांसाठी सोपे आहे, परंतु beam.DoFn जटिल तर्कासाठी अधिक लवचिकता प्रदान करते, विशेषत: जेव्हा स्कीमा समायोजन आवश्यक असते.
  13. बीम पाइपलाइनला स्पष्टपणे का आवश्यक आहे with_output_types घोषणा?
  14. Apache Beam परिवर्तनांमध्ये स्कीमा अखंडता राखण्यासाठी प्रकार सुरक्षा लागू करते. वापरत आहे with_output_types अपेक्षित प्रकार लागू करण्यात आणि रनटाइम त्रुटी टाळण्यासाठी मदत करते.
  15. कसे करते ParsePubSubMessage उदाहरणात काम करा?
  16. ParsePubSubMessage आहे DoFn फंक्शन जे JSON संदेश डीकोड करते, अपेक्षित स्कीमा फॉरमॅट लागू करते आणि पाइपलाइनमध्ये पुढील प्रक्रियेसाठी ते मिळवते.
  17. मी बीममध्ये नेस्टेड ऑब्जेक्टसह स्कीमा वापरू शकतो?
  18. होय, Apache Beam जटिल योजनांना समर्थन देते. वापरा NamedTuple नेस्टेड स्कीमासाठी आणि त्यांची नोंदणी करा १७ योग्य क्रमवारीसाठी.
  19. मध्ये काय फरक आहे १८ आणि बीममधील इतर धावपटू?
  20. १८ प्रामुख्याने स्थानिक चाचणीसाठी आहे. उत्पादनासाठी, जसे धावपटू वापरा DataflowRunner Google Cloud वर पाइपलाइन उपयोजित करण्यासाठी.

रॅपिंग अप: अपाचे बीम विशेषता त्रुटी हाताळणे

मध्ये विशेषता त्रुटींचे मूळ कारण समजून घेणे अपाचे बीम—अनेकदा स्कीमा चुकीच्या संरेखनामुळे—भविष्यातील समस्या टाळू शकतात आणि डेटा प्रोसेसिंग विश्वसनीयता सुधारू शकतात. स्कीमा नोंदणी करून, प्रकार सुसंगतता सुनिश्चित करून आणि संरचित परिवर्तन वापरून, हे मार्गदर्शक “AttributeError” समस्येचे निराकरण करण्यासाठी व्यावहारिक पावले प्रदान करते.

या उपायांसह, तुम्ही स्कीमा अखंडता राखून, Pub/Sub पासून BigQuery पर्यंतचा रिअल-टाइम डेटा हाताळणाऱ्या पाइपलाइन आत्मविश्वासाने तयार करू शकता. ही तंत्रे डेटा पाइपलाइन अधिक कार्यक्षम, मजबूत आणि व्यवस्थापित करण्यास सुलभ बनविण्यास मदत करतात, मग ते वैयक्तिक प्रकल्पांवर काम करत असोत किंवा उत्पादन वातावरणात स्केलिंग करत असोत. 🚀

Apache Beam विशेषता त्रुटींचे निवारण करण्यासाठी स्त्रोत आणि संदर्भ
  1. Apache Beam मधील स्कीमा नोंदणी आणि क्रमिकरण समस्या हाताळण्यावरील माहितीचा संदर्भ कोडर आणि स्कीमांवरील अधिकृत Apache Beam दस्तऐवजीकरणातून देण्यात आला आहे: अपाचे बीम दस्तऐवजीकरण .
  2. Apache Beam पाइपलाइनसह Pub/Sub आणि BigQuery वापरण्याचे तपशील Google Cloud च्या डेटाफ्लो एकत्रीकरण मार्गदर्शकांवर आधारित होते: Google क्लाउड डेटाफ्लो दस्तऐवजीकरण .
  3. कार्यक्षम डेटा ट्रान्सफॉर्मेशनसाठी अपाचे बीमसह पांडांना एकत्रित करण्याच्या सर्वोत्तम पद्धती समुदाय मंच आणि बीमच्या गिटहब चर्चांमधून एकत्रित केल्या गेल्या: Apache Beam GitHub चर्चा .