Press "Enter" to skip to content

GOTO 2017 • Apache Spark Beyond Shuffling • Holden Karau


[Musica]
quindi ho intenzione di provare un po ‘diverso
formato per la presentazione di queste informazioni
di solito faccio in parte perché ho ottenuto
un’opportunità per vestire i miei ripieni
animali in abiti ed è per questo che lì
non è magia che è un po ‘deprimente
ma poi guarderemo la magia e
è davvero più su come la magia dentro
programmare inevitabilmente ruba il nostro pranzo
soldi e fa fallire i nostri lavori così là
è un po ‘magico, ma ha un prezzo
e dovremmo capire quel prezzo così
sì, sto tenendo i miei pronomi preferiti
lei o lei lavoro per IBM Safar
Centro tecnologico a San Francisco
Sono davvero felice che mi paghino dei soldi
vieni a parlare con persone meravigliose come
tu ed io arriviamo a fare un sacco di open source
software e io sono un piccolo commissario scintilla
in parte perché mi pagano e ci arrivo
avere questo tempo per concentrarsi sulla scintilla quindi sono
davvero felice per quello che ho lavorato come
un sacco di altre compagnie come Alpine
libri di dati Google e Foursquare e io sono
un co-autore di diversi libri di scintilla miei
l’ultimo però è ad alte prestazioni
scintilla e ottengo il maggior numero di diritti
per questo è il miglior libro di scintille
e spero davvero che tu lo compri, se vuoi
seguirmi su Twitter per un canadese
chi si sta chiedendo perché vive in
America puoi trovarmi su Twitter e
le diapositive del discorso di oggi darò
loro a Dean ma li ho anche messi sul mio
SlideShare e ne ho altri ancora
una specie di link standard se qualcuno
interessato anche io voglio essere super
chiaro sono come trans e chiaro sono
Canadian Sono qui con un visto di lavoro sono in
un h-1b e anch’io mi considero un
parte della comunità di pelle se tu
non conosco altre persone come me dentro
software dovresti venire a San
Francisco più spesso ma piace anche a noi
qui e come siamo brave persone o forse
non così spaventoso come la televisione implica che io sia
non rubare il tuo lavoro, premo lo stesso
pulsanti che fai e sai forse io
Termina le mie frasi più spesso ma
stiamo bene possiamo essere tutti amici quindi whoo
sì, questo lo fai scivolare, non dovrei saltare
la diapositiva dal mio glorioso datore di lavoro che
non può fare male la tecnologia cicatrice di IBM
a San Francisco è incredibile che in realtà
onestamente piace davvero c’è un sacco di
sviluppatori che lavorano con me lì e noi
tutto si concentra sull’open source non su tutti noi
sono direttamente sulla scintilla ma un mucchio di
le persone lavorano su cose su cui sono basate
cima di scintilla e abbiamo anche un design
squadra associata con noi e loro fanno a
molto lavoro su una sorta di progetti correlati
tipo di taccuino cose ed esperienze
tendono a lavorare su cose che sono a
poco più commercialmente rilevante per te
so quando verranno i licenziamenti, me ne andrò
nell’angolo e saranno ancora
intorno hmm comunque scusa brutta scherzata da layup
um sì se si compra le cose da IBM se
hai un mainframe se ne hai uno
contratto di assistenza continuare a fare che qualcuno
mi ha detto che il sistema / 360 cose
essenzialmente paga il mio stipendio quindi se lo sei
in alcun modo coinvolto in quella banca
continua a comprare che è incredibile, vero
okay , stai ridendo delle mie battute
quindi sei chiaramente bella gente o a
almeno disposto a fingere di essere Sono
davvero curioso di sapere quante persone sono nuove
ad Apache questa scintilla è come la tua prima
intro scintilla oh wow, questo è molto di più
le persone di quanto pensassi questo è davvero divertente
ed eccitante, ok, sono un po ‘
preoccupato anche se spero che questo discorso non lo faccia
ti spavento lontano dalla scintilla perché siamo
parlerò delle parti della scintilla
che spesso non vengono citati perché
non funzionano così bene, ma la maggior parte di loro
la scintilla funziona molto meglio del
pezzi che andremo a parlare di
oggi stiamo parlando di una mancanza
e imparando che puoi sperare
impara cosa sono belle le altre parti
fantastico anche quante persone sono Scala
gli sviluppatori vanno bene Dean si grazie um
quante persone chiamarsi
Sviluppatori Java buona rappresentazione e
Gli sviluppatori Python meno di quanto pensassi
ma noi sviluppatori di Python possiamo essere
amici lavoro in Scozia per lo più ma io
fai molto lavoro con Python
community okay cool grazie, c’è
sarà un misto di esempi e se
c’è qualcosa che non lo fai
capire perché è in un altro
il linguaggio di programmazione mi ferma e lo faremo
andare oltre , va bene
quindi per le persone che sono nuove da accendere
presumibilmente sei qui perché come te
ho visto qualcosa
fantastico per la scintilla ma se non sei super
venduto è davvero fantastico è un
è un sistema distribuito generico
non solo per come risolvere un particolare
compito che puoi fare quello che vuoi con
esso è possibile fornire funzioni arbitrarie
e fare cose
è un progetto Apache che penso sia
davvero importante significa che non lo è
esattamente controllato da una singola azienda
anche se ci sono componenti di esso
che sono più controllati dai singoli
aziende e altri, ma significa questo
c’è una specie di continuazione, se esiste
delle grandi aziende che stanno lavorando
la scintilla decide di andare via sono ancora
ho trovato uno ssin dietro e penso
questo è davvero importante per una sorta di giusto
sai fidarti molto del tuo software
le persone vengono a scintillare perché lo sono
come wow il mio lavoro MapReduce di prendere 18
ore e così vanno come posso fare
scintilla veloce come posso rendere più veloce il mio lavoro
e poi vedono questa cosa che
afferma di essere cento volte più veloce
che è ovviamente una cazzata
ma ce ne vanno come cento
probabilmente non mentire così tanto e poi
loro provano scintilla e poi noi abbiamo ok
l’altro modo in cui penso che le persone trovino
scintilla molto sono come i miei panda
dataframe sta esaurendo la memoria
Voglio distribuire un data frame e
quindi cercano i dati distribuiti
cornice su internet e poi la scintilla
le persone sono come se vieni
non guardare troppo da vicino e poi noi
ci intrufoliamo negli utenti Python ed è così
delizioso e c’è una sorta di due core
astrazioni di scintilla c’è il genere
di quello precedente chiamato rdd’s
sarà ancora molto mantenuto
e sviluppato e loro sono solo
permettici di fare tipi di tipi veramente grezzi
di calcolo e poi ci sono dati
imposta quale è il nuovo nome per i dati
cornici perché il software ama la gente
cambiando i nomi delle cose così abbiamo
set di dati e loro ci danno un dato
frame like interface quindi ce ne sono molti
molti asterischi dopo la loro parola come e
forse un gatto o due conosci molto triste
quindi sì, sì, la gente viene a scintillare
perché sono come quanto sia difficile
essere per imparare la scintilla mentre sto aspettando
il mio lavoro MapReduce per finire e onestamente
puoi ottenere le basi nel tempo
prende per il tuo lavoro MapReduce per terminare
proprio come non hai nemmeno bisogno di chiedere
il tuo capo per la formazione proprio come letto
questo mentre stai aspettando il tuo
lavoro di ricordi per finire il nostro apprendimento
MapReduce che è nella stanza
okay, per favore non uccidermi, e …
sì questo è l’altro i miei dati
non si adatta alla memoria per la mia fantasia
macchina più e non me lo permettono
comprare macchine più grandi o io no
nel più grande tipo di istanza di Amazon come fare
Risolvo i miei problemi ora e l’altro
La ragione per cui arrivano è che c’è un po ‘
di magia e la magia ci morderà dentro
il posteriore ma sarà divertente fino a quando
esplode proprio così qual è la magia di
accendi la magia della scintilla di tutti i tipi
di gambi da questo noi lo chiamiamo il
grafico aciclico diretto che lo rende
sembra tutto stravagante in informatica e
molto buono per scrivere documenti così
carta sparsa in realtà uno come un migliore
il premio cartaceo dà molti esempi di
il grafo delle parole è molto solido ma possiamo
pensa davvero a questo come a una scintilla
un sistema pigro e invece di fare
computazione immediatamente quando lo chiediamo
quello che fa è costruire questo come
idea di tutte le cose che abbiamo chiesto a
fare e poi una volta lo forziamo a
funziona molto come un adolescente
collassa tutto ciò nell’assoluto
minimo richiesto per non essere radicato in
i frame di dati invece di chiamare questo a
i grafici aciclici diretti lo chiamiamo a
piano di query perché è più simile al sequel
e in qualche modo ce ne sono alcuni
differenze molto importanti e lo faremo
guarda quelli così c’è questo dag dentro
Oltre ad essere usato per una specie di questo
ottimo ottimizzatore che prende tutto
le cose che dobbiamo iniziare a fare e
lo spingiamo in una cosa pigra siamo noi
usalo per recuperare dagli errori in
i sistemi distribuiti sono davvero grandi
il problema è che il fallimento è di prima classe
cittadino giusto come possiamo fare
sistemi distribuiti davvero facilmente
funziona su hardware affidabile ma gira
l’hardware affidabile è costoso e
la rete affidabile non esiste e
quindi dobbiamo essere in grado di recuperare
fallimenti e così la scintilla usa lo stesso
informazioni che utilizzano per l’ottimizzatore
andare come se avessi incontrato un errore
andando a ricalcolare questo pezzo di dati
e questo è molto diverso dal
Approccio MapReduce che è quando io
calcolare qualcosa che ho intenzione di scrivere
su tre diversi dischi distribuiti
attraverso il mio centro dati e sono sempre gentile
di
e devo parlare di tre dischi remoti
veramente lento quindi usare questo dag per fare il nostro
ricalcolare sarà molto veloce
fantastico e poi ce n’è un altro
la magia non è super eccitante , guarderemo
in alcuni momenti va bene così RTD è
il Corbett il resiliente distribuito
set di dati in particolare
non è lo stesso non lo sta dicendo
il set di dati non è resiliente questo è
solo le meraviglie degli sviluppatori di software
permesso di nominare cose sono i set di dati
in realtà costruito sulla cima di RDD di nonostante
cosa significherebbe se ci fosse
tipo di utenti e stai vedendo come
cornice dati probabilmente sei davvero
eccitato e tu sei come se potessi portarmi
codice super facilmente e no no che non lo è
andare a lavorare i frame di dati hanno completamente
alcune operazioni di data frame come loro
non hai gli stessi che sei
utilizzato al panda non non da un longshot
ne parleremo ma tuffiamoci
nel primo pezzo di magia insieme
diamo un’occhiata al nostro dag così in scintilla
piuttosto che una sorta di manipolazione
collezioni mutandole nostre nostre
le collezioni sono distribuite e
immutabile e quindi cosa facciamo quando vogliamo
a me piace calcolare qualcosa, ovviamente
voglio calcolare qualcosa è che otteniamo a
nuova collezione, quindi trasformiamo il nostro
dati e poi torniamo indietro
collezione e poi questa collezione
non esiste davvero è questo
la raccolta è proprio come questo piano di come
per realizzare questa collezione se mai ci arriveremo
colto con il fatto che non l’abbiamo fatto
la nostra collezione e entrambe le collezioni sono
quelli in cui non li scrivi mai
perchè non devo calcolare nulla e
non troverai alcun bug nel mio software
e sono davvero entusiasta di questo, ma
diamo un’occhiata a ciò che uno di questi
i piani sembra così, forse no
la giusta dimensione del carattere mi dispiace per quello
ma possiamo vedere qui che il dag è come
tutte queste diverse trasformazioni
sono collegati insieme in uno molto giusto
dopo l’altro e ora questo è questo
un dag molto semplice potremmo avere un RDD
che era composto da molti diversi
input rdd’s così potremmo unirci a join giusti
sono piuttosto semplici e quindi il nostro Dex
per diventare più complicato e il materiale
che possiamo fare collassando questo
diventa ancora più importante ma ma il
la cosa carina a cui pensare è che anche
anche se abbiamo chiesto di fare un intero
un sacco di cose diverse che sta per
calcola questo in una singola passata
sopra i dati possiamo vedere queste fasi
i confini sono una specie di dove il
differenze e possiamo guardare la query
piani e possiamo vedere che piani di query
avere un po ‘più di informazioni no
informazioni che puoi leggere a
distanza da scusa um ma puoi vedere
che ci sia un po ‘più in corso
la scintilla ha un’idea migliore di quello che sta succedendo
su quando lavoriamo come set di dati
giusto quindi stiamo andando a guardare il
esempio di conteggio delle parole stereotipato e
è perché un Big Data con licenza
istruttore mi viene richiesto di includere la parola
conta in ogni discorso che potrebbe avere un nuovo
studente e io sono assolutamente obbligato a
includilo se ha studenti di ritorno
e questo è il motivo per cui il conteggio delle parole è
ovunque ma più seriamente dove
contare è in realtà un buon esempio
per i big data a causa di ciò ridurre
passo fondamentale ma possiamo vedere il nostro
il nostro primo bit è solo il caricamento dei nostri dati
e questo in questo caso sta caricando a
il file di testo potrebbe essere il file di testo
terabyte di dati su HDFS o potrebbe essere
kilobyte di dati sul tuo mac book locale
in entrambi i casi sono pagato allo stesso modo io
non mi interessa davvero, allora andiamo avanti e
abbiamo tokenize i tuoi dati in questo caso siamo
usando le mappe piatte quindi stiamo solo dicendo
ognuno dei nostri input che potremmo avere
più uscite e questa è la nostra regola per
tokenize che funziona davvero bene per
L’inglese quando vado all’estero, faccio finta
che non conosco altre lingue
esiste e quindi è quasi ragionevole
e poi ho questa parola e poi io
bisogno di fare la parola sul numero uno
e poi dico a SPARC come hey cosa succede
riassumere tutti questi numeri uno e salvarlo
fuori e questo riduce le mie cose chiave
davvero importante perché questo è quello
passaggio che richiede internodi
comunicazione se abbiamo appena avuto tutto il
passaggi precedenti e li abbiamo salvati ciascuno
nodo potrebbe solo calcolare i dati localmente
e non avrebbero dovuto parlare con ciascuno
altro e sarebbe molto veloce e
come sarebbe fantastico
ma certo che in realtà avremmo contare fa
avere qualcosa di complicato perché
non è così complicato, sono importante
la cosa importante è che fino a quando arriviamo a
questa scintilla d’azione non ha fatto nulla
Potrei letteralmente dirlo per caricare un file
che non esiste da un formato di input
che non esiste e lo sarebbe
basta andare come va bene e poi è così
solo quando arriveremo qui sarà come
oh aspettare, sì mi hai chiesto di controllare
la spazzatura ma la spazzatura no
esisto così ho finito e quindi questo è questo è
l’azione che costringe a scintillare
valutare la RTD e questo è davvero interessante
perché potremmo fare molto di diverso
mappe e se sei abituato a lavorare in
Mappa Riduci forse sei abituato a spendere
un sacco di tempo a pensare al collasso
tutte le tue cose in single
tappe ma in questo caso il computer
lo fa per me e per lo più è giusto così
va bene che è abbastanza buono um
magia okay non sono una magia molto convincente
si, quindi cosa significa questa parola
esempio è fantastico, le nostre tappe della mappa sono state ottenute
combinati insieme hanno ottenuto il nostro palcoscenico della mappa piatta
combinati insieme se uno dei nostri nodi
fallisce nel mezzo andrebbe e basta
essere come quel nodo stava elaborando il
informazioni su questa porzione del file
Vado e ho uno dei miei
altri nodi fanno questo ricalcolare e possiamo
anche fare cose davvero interessanti come
un po ‘ se uno dei nodi sta prendendo un
molto tempo abbiamo un ritardatario e mi piace
forse è in realtà 386 che qualcuno
intrufolato nel mio gruppo come una burla lo farò
vai e ti piace iniziare in modo preventivo un secondo
compito su un’altra macchina e iniziare
calcolare questo per me quindi penso che questo sia
molto bello ce ne sono alcuni
limitazioni però che provengono da questo
progettare quindi il problema più grande con SPARC
è che alla fine del giorno SPARC è
non un compilatore non sa cosa sia tuo
il programma sembra raccontarlo e basta
sorta di ottiene una vista in ogni istanza di
la parola azione e poi ci proviamo e facciamo
il nostro meglio quando incontriamo un’azione
proprio quando ci siamo cercare di salvare i dati fuori
noi facciamo del nostro meglio per ottimizzarlo, ma io
Non sa cosa si sta andando a fare
subito dopo, se forse lo hai fatto
fatto questo come complesso davvero impressionante
cosa per allenare un modello e poi lo hai
un’altra cosa per estrarre tutto
gli errori non so che tu sia
arrivando ed estraendo gli errori
in seguito , calcoleremo tutto questo
e poi buttalo via subito e tu
potrebbe in realtà voler riutilizzarne alcuni
quei pezzi giusti e quindi abbiamo bisogno di
aiuta a scintillare e fa sapere quando
stiamo solo riutilizzando i dati
perché non abbiamo questo intero programma
di te che vai su una delle altre cose
è combinare queste cose insieme
davvero fantastico per le prestazioni e
davvero terribile per il debugging se così fosse
la mia cosa di tokenizzazione era in realtà
qualcosa di complesso e ho fatto un casino
lì come se avessi un cattivo modello statistico
per come la tokenizzazione cinese e io
ho iniziato a lanciare delle eccezioni che non avrei
scoprire fino a quando l’ ho salvato e al
quel punto non lo saprei necessariamente
quale dei miei compiti di mappa individuali aveva
causato il mio errore perché sto solo ricevendo
un’eccezione dal mio salvataggio giusto e simile
salvare dovrebbe funzionare così spesso accade
con gente che conta e loro sono come
perché non posso semplicemente contare il mio conteggio dei dati
dovrebbe funzionare ed è come si
la contabilità dovrebbe funzionare ma deve fare
tutti gli altri lavori e quindi c’è
alcuni tristi pezzi di magia qui dentro ma è così
ok possiamo possiamo lavorare su gran parte dei nostri
la tristezza e l’ultimo è che è una specie di
la limitazione con la scintilla di rdd è ha
questo è davvero fantastico
ottimizzatore ma non può guardare dentro di
le funzioni che stiamo passando ad esso
giusto così se noi se torniamo alle diapositive
la scintilla non può vedere che stiamo facendo i tokenizing
i dati tutto ciò che sa è che siamo
fare qualcosa con i dati ed è
andando a restituire 0 o più risultati per
ciascun elemento e quindi per il prossimo
sa che otterrà un one-to-one
la mappatura ma non sa che cosa è
accade all’interno di quello che non sa
se sarà davvero complicato
o davvero semplice o se forse lo facciamo
qualcosa di interessante quindi questo è questo
frustranti e set di dati sono andati come me
voglio fare un ottimizzatore più fantastico
ma non voglio passare la vita a provarci
decompilare il bytecode Java
o bytecode Python fino al punto
le persone erano come se volessi fare di più
strumenti fantastici ma non voglio diventare
uno scrittore di compilatori e sì è bello
l’altro pezzo di magia è quello dentro
di tutto questo i nostri dati sono magicamente
distribuito ci sono alcuni cache che
succede dentro
Saiki ma quando stiamo caricando i nostri dati
da HDFS abbiamo i nostri dati magicamente
distribuito attraverso il nostro cluster se noi
avere una collezione locale e vogliamo
tipo di spedirlo ovunque
scintilla prenderà quella raccolta e
affettarlo e inviarlo a tutti i
computer diversi e non dobbiamo
pensaci troppo, tranne quando
si rompe e questo normalmente accade all’interno
dello shuffle è il passo shuffle
la parte difficile della parola conta ed è
la parte difficile della maggior parte distribuita
applicazioni di libri in costruzione
allo stesso modo e il nostro shuffle richiede
che abbiamo una propria partizione all’interno
della scintilla e cosa significa quando
stiamo caricando i nostri dati in scintilla no
devo davvero fare molte ipotesi
su come appaiono i nostri dati ma quando
mischia il conteggio avanti dei dati per
esempio ha bisogno di inviare tutto il
informazioni su tutto ciò che ha
la stessa parola per la stessa macchina e
questo lo sapresti molto velocemente
sopraffare la scintilla proprio così ovviamente
ci sono alcune soluzioni a questi problemi
ma questo è parte di dove la magia
rompe i nostri petizionisti devono essere
Lo è l’errore deterministico e chiave
essenzialmente la parte che rompe il nostro
partizionamento automatico magico del tuo
dati mi piace pensarlo come l’ante
salvataggio potrebbe anche essere la strega cattiva
dell’Occidente non importa ma è vero
scopre la maggior parte dei dati che abbiamo ha chiave
inclinati o almeno in fasi modiche
Ho che mi interessa avere l’obliquità della chiave
in esso e se i tuoi clienti ti dicono
che i tuoi dati non hanno l’inclinazione della chiave in
stanno mentendo
probabilmente non intenzionalmente ma lo sono
mentendo a te
se hai qualcosa con come no
al suo interno probabilmente andrai
per scoprire come l’ 80% di quei record
in realtà non ho a un certo punto nel tuo
elaborazione pipeline ed e sta andando
essere triste e inizierai
inviando tutti i tuoi dati a questo
macchina e la tua magia distribuita
il sistema diventa così efficace
macchina singola che non è molto
di divertimento non è quello che vogliamo fare così
all’interno di shuffles quando facciamo qualcosa
come ordinare per chiave o gruppo per chiave quale
essenzialmente richiede solo che tutti
i dati con lo stesso tasto vanno per il
possiamo usare la stessa macchina
come esplodere questo è uno dei miei preferiti
esempi si tratta di mie intenzioni a
aprire un negozio di cera per baffi al manubrio
San Francisco bene, non ne sono convinto
è a San Francisco, ma voglio
aprire un baffo manubrio artigianale
negozio di cera Penso che sia il momento
davvero vieni a vedere un sacco di hipsters
anche se non così tanti nella stanza come me
mi aspettavo che forse dovrei riconsiderare la mia
baffi negozio cera um ma si sa forse
Ho intenzione di acquistare alcuni dati di mercato
e ho intenzione di provare a capire
dove dovrei essere l’invio i miei volantini per
la gente di questi eccitanti una volta nella nostra
opportunità a vita per risparmiare il 20%
la loro cera baffi o dove dovrei
apri il mio negozio giusto e così ho il
codice di dati perché si scopre che
la precisione è piuttosto economica e possiamo
far finta che non si II anonima la
utente anche se lo fa totalmente tranne te
so che la gente me lo venderà
dati per circa cinque dollari e così io
mischiala ma poi si scopre che
ci sono così tanti hipster a San
Francisco che il mio computer distribuito
fallisce e invio tutti i miei dati per like
questo non è nemmeno tutto di San Francisco
questo è solo il Mission District e questo
risulta che abbiamo un sacco di baffi e
quindi il rosso rosso è triste e questo succede
perché quando ordiniamo i nostri dati per chiave
La scintilla dice ok Sto andando a campionare
i dati che ho intenzione di cercare di capire
quali sono alcuni intervalli di intervallo ragionevoli
per i miei dati ma non può romperli se il
la chiave non cambia, non possiamo inviare una chiave
a due computer diversi in questo momento e
questo è veramente utile da quando siamo
fare cose a valle come partecipare
perché se so dove sono tutti i dati
per una chiave è quando sto facendo il mio join
questo può essere molto più efficiente
Posso fare i miei shuffle in modo più efficiente io
può forse solo mescolare uno dei miei due
pezzi ed è come uno di loro è grande
e uno di loro è piccolo che può fare un
enorme differenza, quindi questo è questo
ci regala delle performance davvero interessanti
benefici ma ne esce il costo di I
non riesco a capire dove aprire il mio
negozio di cera baffi che è un po ‘triste
tosse quindi c’è un trucco
L’ho fatto lo aggiusto in questo esempio
qualunque cosa faremo finta che sia lì
potrebbe essere un record che viene mischiato
sono erroneamente a mano
scusa l’ ho fatto a mano per il
letteralmente byte di dati ma possiamo farlo noi
possiamo prendere la nostra chiave e possiamo
Aggiungici un po ‘di spazzatura e questo è gentile
di hacky ma ci permette di fare il nostro
shuffles distribuiti che riesco a capire
dove inviare i miei baffi neri volantini
e tu sai che tutti saranno
felice il mio sistema distribuito è ancora
andando a lavorare magicamente fino a quando non si divide
un modo in cui lo shuffle può fare le cose
triste e questo è un modo siamo in grado di farlo
felice ma ci sono altri modi che possiamo fare
il riordino triste e felice allo stesso
tempo stavamo parlando di come
la scintilla non può vedere all’interno del lambda
espressioni giuste e questo può venire
insieme al nostro buon amico Keith Q a
crea un problema ancora più grande quindi raggruppa
Ikey è la cosa che suona davvero
sicuro quante persone pensano che il gruppo di bikie
sembra un’API sicura da usare solo a posto
due persone quante persone pensano
sembra un’API pericolosa da usare
prima ho iniziato a parlare sulla diapositiva
okay tre persone e un sacco di risate così
è abbastanza buono, grazie, umm così
Sì, voglio dire, chiaramente non è sicuro
perché questa è una diapositiva etichettata di più
tristezza ma penso che sia raggruppata per chiave
quando sono venuto per la prima volta a scintillare ero come
sì, voglio raggruppare i miei dati insieme
chiave che ha senso
e l’ottimizzatore magico sembrerà e
guarda cosa sto facendo e capisci
ed essere intelligente e mi salverà dal mio
pigrizia o in realtà mi salverà
dalla mia pigrizia per la pigrizia okay no
uno come um qui è brutto conteggio delle parole um
e penso che se non avessimo parlato
sul perché il gruppo di bikie era triste o è così
ci sarebbe non necessariamente questo non sarebbe
saltaci fuori subito come non scintilla
gli sviluppatori sono un cattivo modello giusto
Ho i miei dati che lo riconosco e lo faccio
parola la cosa numero uno e poi io
raggruppalo per ogni parola e poi
Io vado avanti e calcolo la somma oh esso
sembra buono e poi salvo il risultato
fuori bene c’è davvero una differenza
in questo caso l’ho fatto letteralmente
kilobyte di dati perché ero
sull’aereo ma la shuffle legge
qui è cryptokey ha lasciati sì la
leggere mescolato qui è come quarantotto
punto sette kilobyte e il mescolato
ride è abbastanza 2.4 e così è
va bene per un input essenzialmente per il nostro
input abbiamo finito per scrivere esattamente come
tanto quanto il nostro risultato è stato durante il
shuffle stage e questo è interessante e
potrebbe andare bene
ma perché stiamo per mandare
potenzialmente tutti i record per uno
parola per una macchina questo potrebbe essere
problematico una grande parte di quello
mescolato a destra potrebbe andare a
macchina singola, quindi invece cosa abbiamo fatto
il nostro precedente esempio, come usiamo, riduce di
la chiave e ridotta per chiave consente di accendere
capisci cosa sta succedendo perché
all’interno dei nostri valori di mappa scintilla tutto
sa che stiamo calcolando qualcosa
non sa se c’è un parziale
aggregazione di quel qualcosa che
esiste proprio non può piacere calcolare questo
per come i tasti su una macchina e
quindi invia la chiusura a un’altra macchina
e poi il nuovo un po ‘di follia come
non andrà molto bene
ma siamo decisi da Key Tell come scintilla
paga per tutti i dati con questa chiave questo
è la mia regola combinata che voglio che tu faccia
combinare i dati utilizzando questa regola e
quindi su ciascun lavoratore combina i dati
per ogni chiave localmente e poi esso
mischia i valori combinati e così via
la maggior parte di noi ha un numero di istanze di lavoratori
di ogni singola chiave viene mischiata a
le diverse macchine e meno che tu
avere più lavoratori di quanti ne abbia la memoria
sui tuoi lavoratori, nel qual caso compri per favore
un contratto di supporto IBM l’ ultima volta che ho detto
Clara e quello era solo imbarazzante
um libro per favore acquista un contratto di supporto
da esso faccio il venditore in quel caso ma se
hai più di due gigabyte
di macchine in cui ti imbatterai
altri problemi ma riducono per chiave
essenzialmente garantisce che stiamo andando
per avere un risultato ragionevole fornito
che la nostra riduzione non è solo la creazione di
lista come se creiamo una lista
all’interno della nostra riduzione per chiave non c’è
sarà una diminuzione della memoria e
abbiamo ancora intenzione di avere essenzialmente
questo percorso di tristezza ma se sto riassumendo
i numeri intendo numero intero più intero
occupa lo spazio di un intero
Sono abbastanza felice o anche se lo sto facendo
come un set di hash come se non fossi a
valore duplicato così ho intenzione di essere
è abbastanza felice per un aggregato per chiave
come la parola conta la seconda parte che noi
di solito partono per i colloqui avanzati e
questo ci permette di fare cose che non lo sono
il conteggio delle parole è così che è definitivamente
il prossimo discorso ma puoi usarlo per
cose in cui stai calcolando roba
dove i tipi non sono esattamente gli stessi se
stai facendo come un indiano per una mappa di hash
puoi farlo più facilmente con qualsiasi cosa
prendi la chiave e possiamo vedere la riduzione di
versione chiave sai leggere le mescolanze
è sceso di un fattore due e puoi farlo
fiducia in me, perché nessuno può leggere questo
Scivolo, mi dispiace
ma le diapositive verranno pubblicate e tu
posso ricontrollare che sia proprio così
almeno ho usato mspaint per fingere questi
scivola sì bello
quindi un’altra potenziale soluzione invece di like
ricordando intenzionalmente di non usare
Raggruppa per chiave quale essere onesti non è quello
duro ma invece di esprimere tutto il mio
una sorta di statistica aggregata come ridotta
con le operazioni chiave potrei usare i dati
cornici e cornici dati permettono di scintilla
capire cosa sta succedendo così dentro
il nostro invece di avere questa mappa vale I
può ottenere questa struttura dati di gruppo e io
posso dire a scintille quali somme lo voglio
calcola e poi scintilla può fare davvero
cose fantastiche per noi che posso persino avere
cose in cui seleziono le dichiarazioni
restringere i dati che sto leggendo
e poi scintilla leggerà solo le parti
dei dati di cui ho bisogno se ho un filtro
o se seleziono solo determinate colonne questo
può fare una grande differenza se i tuoi dati
è partizionato in modo appropriato e questo è
davvero importante, l’altra cosa
che penso sia davvero interessante per i dati
set è che mi permette di scrivere in questo
DSL quella scintilla può capire quale
sembra molto simile al sequel ma alla fine
del giorno sono una programmazione funzionale
nerd che non è molto bravo con il sequel così
Voglio ancora essere in grado di mettere il mio casuale
roba di programmazione funzionale in una sorta di
al centro di questi sequel come
dichiarazioni in questo caso sono io
caricamento di alcune informazioni sui panda
probabilmente la maggior parte dei panda sono piuttosto tristi
Sinceramente penso che vivano negli zoo, è così
tipo di deprimente, ma posso elaborare
questi dati sono molto più veloci poiché mi interessa solo
per il felice
supponendo che i miei dati siano perfettamente
partizionato e quindi posso avere questo
la dichiarazione del filtro e la scintilla possono vederlo
Mi interessa solo i panda felici e lo farò
ignora completamente tutti i tristi
panda nel mondo che è deprimente
scusa ok, um ecco deprimente
annotazioni a destra va bene quindi cerchiamo di andiamo
torna a qualcosa di più divertente diciamo che lo sono
davvero curioso di vedere come i panda sono sfocati
sono in aggregato, ma io faccio davvero schifo
scrivendo sequel come dichiarazioni e ho
ho questo attributo array e voglio solo
per riassumere tutto questo e quindi questo è questo è
una programmazione funzionale del
sottolineatura dovrebbe davvero che puoi
riscrivi il carattere di sottolineatura in lambda X : X
maggiore di zero quando sarà la tua vita
bene mi interessa solo in positivo
Panda sfocati se un panda è negativamente
fuzzy Penso che sia un errore di dati quindi noi
puoi buttarlo fuori o quel panda
ha alcuni problemi e posso tenere il pollice
e torno a un set di dati e penso
questo è bello perché riesco a fermarmi
scrivere il mio come un nerd funzionale
programmare cose e fingere che il mio
il datore di lavoro ottiene un buon rapporto qualità-prezzo
ma posso mescolarmi con una sorta di sequel
come le espressioni scintilla possono davvero facilmente
ottimizzare e fare cose interessanti con ed è
molto più veloce, se sto calcolando alcuni
aggregati intendo che sappiamo raggruppati per chiave
è brutto perché ti ho detto che è cattivo grosso
è male qui piccolo è buono a differenza del
quantità di denaro che le persone dovrebbero pagare
io dove malediremo questi due, ma noi
può vedere il gruppo per tasto esegue abbastanza
terribilmente e possiamo vedere che ridotto di
la chiave si comporta abbastanza bene, ma se noi
chiedi ai frame dati spark le stesse cose
sono in grado di farlo molto più velocemente
perché è in grado di capire cosa
lo stiamo chiedendo di fare e può farlo
conduttura molte di queste cose molto
in modo più efficiente ottiene anche molto
migliore comprensione dei tipi di dati
i frame ha questo tipo di set limitato
di tipi in cui possiamo lavorare più o meno
qualsiasi tipo nativo a cui sei abituato
lavorare con esso va bene, ma il nostro Eadie
prendere una sorta di java arbitrario
oggetti e oggetti Python arbitrari e
usiamo i serializzatori integrati per
quelle cose
e funziona così bene come faresti tu
almeno pensi che non sia XML hmm e così via
questo è questo o JSON, quindi questo è molto
più veloce perché l’ottimizzatore è in grado di
guarda cosa stiamo facendo e anche le nostre cose
richiede solo meno memoria mentre
Lo stiamo facendo quindi questo è piuttosto fresco
e dovresti assolutamente considerare l’utilizzo
set di dati che relatedly è coperto solo
nella mia nuova coincidenza di libri ti assicuro
giusto quindi faremo un ultimo bit
di magia quindi sono come sette o otto
Le persone di Python nella stanza e noi siamo
andando a far funzionare la scintilla con Python I
significa che stiamo andando a qualcun altro ha fatto
questo già ben vediamo come
lo hanno fatto bevono un sacco di caffè
e hanno detto a se stessi che so come
per fare comunicazione inter processo che uso
Tubi UNIX e poi erano come va bene
bene facciamo un po ‘ di flusso ma come puoi
compra solo il doppio delle macchine e della vita
sarà a posto e questo è lo stato del
mondo, ma diamo un’occhiata a questo diamo un’occhiata a
come funziona hai fatto qualcosa di simile
questo parco giochi um se mandi il tuo
procediamo quaggiù probabilmente
riuscire in qualche modo ma se muore non lo è
colpa mia e hai firmato una responsabilità
rinuncia o si sa da un contratto di supporto
quindi sul nostro programma sul lato conducente che è
una sorta di dove definiamo tutti i nostri
trasformazioni e definiamo tutto il nostro
seleziona o qualunque cosa stiamo facendo
i nostri dati sparsi hanno bisogno di un modo per
comunicare da Python alla JVM così
che la JVM può pianificare questi lavori per
e lo facciamo usando qualcosa chiamato
PI per J e PI per J è incredibile e
terribile ti dà un errore delizioso
i messaggi come oggetto non sono richiamabili
che è proprio come quello significa
qualcosa è andato storto da qualcosa
amare l’oggetto non è letteralmente richiamabile
confezionare non esiste per la mia classe
passarlo è cancellato per sbaglio tutto diventa
fare lo stesso messaggio di errore che è
delizioso perché quando lo fai su Google
puoi vedere tutto il potenziale del gioco di parole
difetti ma sai che è grandioso perché
suo
il codice funziona e non c’è davvero niente
meglio in alta scintilla quello che facciamo è noi
prendi i nostri dati e lo mettiamo in salamoia e noi
memorizzarlo in un RDD
Non lavoro molto bene, ma funziona bene
di sorprendentemente si scopre che provando
per capire quale chiave un oggetto in salamoia
ha in Java è un po ‘costoso
quindi è esattamente vero ma è così
abbastanza vicino
facciamo un po ‘di magia per rendere così la JVM
in grado di capire gli oggetti in salamoia
così come comprendo il francese che è
per dire che posso dire ciao e il numero
quattro oh anche io posso assicurartelo
L’Europa è un ananas senza banana um
comunque in modo sì così la JVM può ordinare di
capire questi oggetti in salamoia solo
abbastanza da capire dove dovrebbero
andare avanti la JVM è responsabile per tutti
la comunicazione di rete sta succedendo così
deve capire quali sono le chiavi
dei nostri dati e questa alta qualità
diagramma architettonico che ti mostra
che non sono riuscito a convincere il
progettisti di lavorare sulla mia diapositiva mostra
sei praticamente come funziona sul nostro
il programma driver che usiamo PI per J non lo è
incredibile ma funziona e sul nostro lavoratore
programmi copiamo i dati dalla JVM
in Python facciamo tutta la nostra magia
calcolo e copiamo indietro questo
ha alcune implicazioni sfortunate
quindi nessuna attesa per voi per finire prendere una
foto e va bene ah bene così come fa questo
rompere essenzialmente questo discorso è tutto
le cose brutte che abbiamo fatto in scintilla
non si ha a che fare con e per la
Gli utenti Python il più grande è quello che noi
devono serializzare i dati su più
volte e in pratica lo serializziamo
inviarlo a Java rimandarlo da Java
a Python nel caso te ne rendessi conto e questo
diventa un po ‘ triste perché spendiamo
per tutto il tempo semplicemente CC realizzando questo
dati ed è un po ‘deprimente il
altre parti non sono molto importanti
cosa che ho lasciato qui è che il
i messaggi di errore non hanno senso
qualcuno ha mai capito una scintilla PI
messaggio di errore e nessuno va bene
sì sì, i messaggi di errore in PI scintilla
letterale
sono cose come la mia iteratore è come
non valido e questo può essere il tuo lambda
l’espressione in una delle tue mappe è sbagliata
e questo è semplicemente fantastico
se sei interessato a scusarmi dovrei
ti lascia una soluzione piuttosto che
come se tutto fosse terribile e infuocato
oh sì continuo a dimenticare di mettere il
felice putter in um ora ora per fortuna
ci sono modi per capire l’errore
messaggi ma è un discorso a sé
per persone di Python e quindi ho un Python
focus parla su come leggere la scintilla di Python
messaggi di errore ed è su YouTube I’m
mi dispiace che sia come un discorso di 40 minuti
come leggere i tuoi messaggi di errore ma tu
dovrebbe davvero utilizzare i set di dati del tuo
implica il perché ci salva dal
il più grande svantaggio di questo delizioso
architettura che abbiamo scelto e che
è invece di prendere i dati e
serializzandolo avanti e indietro tutto il
tempo con set di dati quando scriviamo il nostro
cose in questo DSL che scintilla possibile
capire la scintilla compila solo un DSL
con Java e solo corre lassù e
stiamo bene
giusto non abbiamo nemmeno bisogno di eseguire
qualsiasi cosa in python tranne che tu lo sai
il nostro bel piccolo programma driver che
dice alla JVM cosa fare in particolare questo
tutto viene a crollare una volta in realtà
bisogno di usare numpy e poi torniamo a
il doppio costo di serializzazione perché
scopre che la versione java di Numpy
è chiamato non esiste e sì
comunque penso che mi stia avvicinando
Alla fine ci sono alcuni deliziosi SPARC
video per le persone che sono nuove
questa parte se non ti ho spaventato troppo
molto Paco ha davvero un meraviglioso
introduzione alla scintilla di Apache se ne hai
un conto spese si prega di comprarlo da
O’Reilly è $ 100 ma se lo sei
decidere tra l’acquisto di quello nel mio libro
lui ha una versione gratuita di questo discorso
su YouTube e dovresti comprare il mio libro I
continua a parlare con persone che non hanno
testato il loro codice scintilla e questo è
terrificante solo perché è in a
notebook non significa che non c’è bisogno di
testalo senza guardare nessuno dentro
particolare ma come per favore non uccidere
me o portare alla prossima finanziaria
collasso poi finisco in uno di quelli
avvicinando libri di testo in 20 anni circa
qualcuno che è stato ucciso dal suo stesso
software e non è quello che voglio
legacy per essere così ecco un mucchio di
librerie di test non vite fino Sono
uno di questi è scritto da Jesse bene
c’è un post sul blog su come usarlo
scritto da Jesse che è incredibile Jesse
alzò la mano yeah, Jesse, e tu
dovrebbe sicuramente leggerlo se sei un
Utente Java, penso che sia davvero buono
forse ti dice di usare i miei test
biblioteca quindi hmm c’è qualche simbiotico
relazione lì come erano qui
i nostri libri di scintille ricevo royalties per
molti ma non tutti questi se sei nuovo
scintillare scintilla di apprendimento è grande
ho imparato la scintilla di PI di Dennie che non capisco
qualsiasi parola su Tomas non ne ho
royalties da ma è anche abbastanza bello
e io Oh Danny una birra, quindi dai un’occhiata
imparando la scintilla del PI e lasciandoli cadere una linea
che ha detto che l’hai comprato da me ed è così
come se fossero sei persone, ne sono abbastanza sicuro
Non devo comprarli Bud Light Lime
oh no ho dimenticato la mia Bud Light Lime okay oh
scusa, ho una conferenza post
tradizioni che conosci ma più
importante acquistare diverse copie di questo
prenotare il mio corso di conformità aziendale
era molto chiaro che non mi è permesso
accetta banconote da $ 20 in una busta marrone
più e hanno detto che non ha nemmeno
in realtà importa ciò che colora una busta
ero ma mi è permesso di chiedere di acquistare
il mio libro da cui ricevo le royalties
non $ 20 ti dispiace ma per favore per favore comprare
questo sarà presto finito ma non lo farò
Lascia che ti impedisca di darmi il tuo
soldi se stai cercando dei posti
per venire farò orario d’ufficio
domani alle ore 11 presso intellighenzia
questi non sono ufficiali non vanno sponsorizzati
o qualcosa del genere mi piace
bere caffè e se altre persone mostrano
su posso metterlo sul mio dopo accennato
conto spese se nessuno mostra il mio
il capo sta diventando sospettoso che il blu sia
non una persona reale, quindi probabilmente non posso
lo spese se qualcuno viene dall’Europa lo farò
essere a Lisbona a Barcellona e
in Israele per il resto di questo mese I
sono sicuro che tornerò a casa a giugno quando
la vetta della scintilla avviene a San Francisco così
vieni a salutare uno di questi bei eventi
e posso comprarti un caffè a mie spese
conto soprattutto se valuti questo discorso
ricordo davvero molto di questo discorso
incredibile e gli animali di peluche erano
super carina quindi grazie per essere venuta
Credo di poter fare domande, è ora
per domande va bene qualcuno ha
domande fantastiche che è a
domanda meravigliosa e così essenzialmente
la domanda era: non sono abbreviato
Sto facendo qualcosa di normale quando sono
facendolo devo iniziare come scarso
matrice ma spunti
come se avessi distribuito questa magia
sistema devo ancora fare sparso
matrici e la risposta non è altro che te
comprerà molte macchine e
che va bene dal mio punto di vista ho
lavorare da un fornitore di hardware dal punto
di vista di come Holden futuro che può
non funziona come un fornitore di hardware e lo farà
lavorare con un servizio cloud anche bene da
il punto di vista di qualcuno che possa
alla fine pagare il conto
oh dio per favore usa una matrice sparse um
c’è un formato di matrice di righe distribuito
e SPARC non è grandioso ma ha un
costruito in una rappresentazione vettoriale sparsa
puoi usare e probabilmente lo darai
hai il giusto livello di scarsità e quello
tutto probabilmente funziona ma non mi stringere
va tutto bene, penso che sia per questo
domande quindi grazie a tutti per essere venuti
spero che questo sia stato utile e non ho spaventato
sei lontano dall’usare la scintilla se l’avessi fatto
per favore non dirlo al mio capo
tu

Please follow and like us: