טרנספורמציות סטטיסטיות עם חלילה בזרם ניצוצות



פוסט בבלוג זה דן בתמורות סטטיות עם חלונות בהזרמת ניצוצות. למד הכל אודות מעקב אחר נתוני קבוצות באמצעות D-Streams מלאים.

תורם על ידי Prithviraj Bose

בבלוג זה נדון במושג החלונות של התמורות הממלכותיות של אפאצ'י ספארק.





מהי טרנספורמציה ממלכתית?

הזרמת ניצוצות משתמשת בארכיטקטורת מיקרו-אצווה כאשר הנתונים הנכנסים מקובצים לקבוצות מיקרו הנקראות זרמי דיסקרטיזציה (DStreams) המשמשת גם כהפשטת תכנות בסיסית. ל- DStreams יש באופן פנימי מערכי נתונים מבוזרים גמישים (RDD) וכתוצאה מסטנדרט זה ניתן לבצע טרנספורמציות ופעולות.



בסטרימינג אם יש לנו מקרה שימוש למעקב אחר נתונים על פני קבוצות, אנו זקוקים ל- DStreams ממלכתיים.

לדוגמא אנו עשויים לעקוב אחר האינטראקציה של המשתמש באתר במהלך הפעלת המשתמש או שנעקוב אחר האשטאג מסוים של טוויטר לאורך זמן ונראה אילו משתמשים ברחבי העולם מדברים על זה.

סוגי טרנספורמציה ממלכתית.



DStreams ממלכתי הם משני סוגים - מעקב מבוסס חלון ומעקב אחר הפעלות מלאות.

למעקב סטטיסטי יש להפוך את כל הנתונים הנכנסים לזוגות ערך מפתח, כך שניתן יהיה לעקוב אחר מצבי המפתח בין קבוצות. זהו תנאי מוקדם.

בהמשך עלינו לאפשר גם בדיקת בדיקה, מושג עליו נדון בבלוגים המאוחרים יותר.

> מעקב מבוסס חלונות

במעקב מבוסס חלון הקבוצות הנכנסות מקובצות במרווחי זמן, כלומר קבוצות קבוצתיות כל 'x' שניות. חישובים נוספים על קבוצות אלה נעשים באמצעות מרווחי שקופיות.

לדוגמא אם מרווח החלון = 3 שניות ומרווח השקופיות = 2 שניות, אזי כל הנתונים הנכנסים יקובצו בקבוצות אחת ל -3 שניות והחישובים בקבוצות אלו יתרחשו כל 2 שניות. לחלופין אנו יכולים לומר, בצע חישובים כל 2 שניות בקבוצות שהגיעו ב -3 השניות האחרונות.

spark-streaming-dstream-window

בתרשים שלעיל אנו רואים כי האצוות הנכנסים מקובצים כל 3 יחידות זמן (מרווח חלון) והחישובים נעשים כל 2 יחידות זמן (מרווח שקופיות).
הערה: שלא כמו Apache Flink, ל- Apache Spark אין מושג של חלון מתגלגל, כל החלונות מחליקים.

הגדרת מסלול ג'אווה ב- Linux

אֵשׁ

ממשק API פופולרי לשינויים מבוססי חלונות הוא

PairDStreamFunctions.reduceByKeyAndWindow .

ישנן מספר גרסאות עמוסות יותר של ה- API הזה, בואו נראה את זו שיש לה את מספר הפרמטרים הרב ביותר. לאחר הסבר זה שאר הגרסאות העמוסות של API זה צריכות להיות מסבירות את עצמן.

חוזר: DStream שהוסב [(K, V)]

להפחית פאנק : הפונקציה להפחתת האסוציאטיבי.

invReduceFunc : ההפך מהאמור לעיל מפחית את הפונקציה. זה נדרש למחשוב יעיל של קבוצות נכנסות ויוצאות. בעזרת פונקציה זו יורד הערך של הקבוצות היוצאות מהערך המצטבר של פונקציית ההפחתה הנ'ל. לדוגמא, אם אנו מחשבים את סכום הערכים הנכנסים עבור המקשים המתאימים, אז עבור הקבוצות היוצאות נפחית את הערכים עבור המקשים המתאימים (בתנאי שהם קיימים בקבוצת הנוכחי אחרת נתעלם).

חלון משך זמן : יחידות זמן לקיבוץ האצוות, זה צריך להיות מכפיל מרווח האצווה.

slideDuration : יחידות זמן לחישוב, זה צריך להיות מכפיל מרווח האצווה. מחיצות : המחיצה לשימוש לאחסון ה- DStream שנוצר. למידע נוסף על חלוקה קראו זֶה .

filterFunc : פונקציה לסינון צמדי ערך מפתח שפג תוקפם, כלומר למשל אם לא נקבל עדכון למפתח מתישהו, נרצה להסיר אותו.

הנה תכנית לספור את המילים המגיעות מזרם שקעים. השתמשנו בגרסה עמוסה של הפונקציה שלעיל עם מרווח חלון של 4 שניות ומרווח שקופיות של 2 שניות.

בבלוג הבא שלי אכתוב על מעקב ומעקב אחר הפעלות מלאות.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות ונחזור אליך.

פוסטים קשורים:

מטמון מבוזר עם משתנים משודרים