Κατανεμημένη προσωρινή αποθήκευση με μεταβλητές εκπομπής: Apache Spark

Αυτή η ανάρτηση ιστολογίου συζητά την κατανεμημένη προσωρινή μνήμη με μεταβλητές εκπομπής και σας ξεκινά να διανέμετε αποτελεσματικά μεγάλες τιμές στον προγραμματισμό Spark.



Συνεισφορά από τον Prithviraj Bose



πώς να χρησιμοποιήσετε το goto στο c ++

Οι μεταβλητές εκπομπής είναι χρήσιμες όταν τα μεγάλα σύνολα δεδομένων πρέπει να αποθηκευτούν προσωρινά στην εκτέλεση. Αυτό το ιστολόγιο εξηγεί πώς να ξεκινήσετε.

Τι είναι οι μεταβλητές μετάδοσης;



Μεταβλητές μετάδοσης στο Apache Spark είναι ένας μηχανισμός για την κοινή χρήση μεταβλητών μεταξύ εκτελεστών που προορίζονται να είναι μόνο για ανάγνωση. Χωρίς μεταβλητές μετάδοσης, αυτές οι μεταβλητές θα αποστέλλονται σε κάθε εκτελεστή για κάθε μετασχηματισμό και ενέργεια, και αυτό μπορεί να προκαλέσει επιβάρυνση του δικτύου. Ωστόσο, με μεταβλητές εκπομπής, αποστέλλονται μία φορά σε όλους τους εκτελεστές και αποθηκεύονται προσωρινά για μελλοντική αναφορά.

Περίπτωση χρήσης μεταβλητών μετάδοσης

Φανταστείτε ότι ενώ κάνουμε έναν μετασχηματισμό πρέπει να αναζητήσουμε έναν μεγάλο πίνακα με ταχυδρομικούς κώδικες / κωδικούς pin. Εδώ, δεν είναι ούτε εφικτό να στέλνετε τον μεγάλο πίνακα αναζήτησης κάθε φορά στους εκτελεστές, ούτε μπορούμε να ρωτάμε τη βάση δεδομένων κάθε φορά. Η λύση θα πρέπει να είναι να μετατρέψετε αυτόν τον πίνακα αναζήτησης σε μεταβλητές εκπομπής και το Spark θα το αποθηκεύσει προσωρινά σε κάθε εκτελεστή για μελλοντική αναφορά.

Ας πάρουμε ένα απλό παράδειγμα για να κατανοήσουμε τις παραπάνω έννοιες. Έχουμε ένα αρχείο CSV με ονόματα χωρών και πρωτεύουσών τους. Μπορείτε να βρείτε το αρχείο CSV εδώ .



CSV-file-distributed-caching

Υποθέτοντας ότι επεξεργαζόμαστε δημογραφικά δεδομένα χωρών και πρέπει να πάρουμε την πρωτεύουσα αυτής της χώρας. Σε αυτήν την περίπτωση μπορούμε να μετατρέψουμε τα δεδομένα στο αρχείο CSV σε μεταβλητή εκπομπής.

διαφορά μεταξύ επέκτασης και υλοποίησης

Πρώτα φορτώνουμε το αρχείο CSV σε χάρτη, αν το αρχείο βρεθεί τότε επιστρέφει η μέθοδος Μερικές χώρες) αλλιώς επιστρέφει Κανένας .

Μετά την επιτυχή φόρτωση του αρχείου CSV μετατρέπουμε τον χάρτη σε μεταβλητή εκπομπής και τον χρησιμοποιούμε στο πρόγραμμά μας.

Στο απόσπασμα κώδικα παραπάνω φορτώνουμε το αρχείο CSV σε χάρτη χώρες τότε μετατρέπουμε αυτόν τον χάρτη σε μεταβλητή εκπομπής χώρες . Στη συνέχεια, δημιουργούμε ένα RDD από τα πλήκτρα του χώρες . Στο searchCountryDetails μέθοδος αναζητάμε όλες τις χώρες ξεκινώντας με ένα γράμμα που καθορίζεται από τον χρήστη και η μέθοδος επιστρέφει ένα RDD των χωρών μαζί με τα κεφάλαιά τους. Η μεταβλητή εκπομπής countrieCache χρησιμοποιείται για την αναζήτηση των πρωτευουσών.
Με αυτόν τον τρόπο δεν χρειάζεται να στέλνουμε ολόκληρα τα δεδομένα CSV κάθε φορά που χρειαζόμαστε αναζήτηση.

Ο κωδικός για το searchCountryDetails φαίνεται παρακάτω,

c ++ χρησιμοποιώντας χώρο ονομάτων

Μπορείτε να βρείτε ολόκληρο τον πηγαίο κώδικα εδώ .

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.

Σχετικές αναρτήσεις:

Εξηγήθηκαν οι συσσωρευτές σπινθήρων

Το Apache Spark CombByKey εξήγησε