Press "Enter" to skip to content

GOTO 2018 • Analyzing Pwned Passwords with Apache Spark • Kelley Robinson


[Musica]
buon pomeriggio a tutti mi chiamo Kelly
Robinson e io sono davvero entusiasta di essere
qui oggi
goto è costantemente uno dei miei preferiti
conferenze quindi grazie per avermi me
ho trascorso gran parte della mia carriera come
sviluppatore erudito di cui circa tre
degli ultimi anni facendo ingegneria dei dati
presso una società di tecnologia pubblicitaria
quando ho iniziato lì nel 2015 eravamo
correndo forse scintilla 1.1 e così è stato
davvero interessante vedere come il
progetto ha sviluppato da allora la società
siamo nella serie X di scintillio 2 punti e
ci sono stati molti sviluppi in
la lingua nel quadro o progetto
o come volete chiamarlo dal
il tempo che ho iniziato con questo come te
posso immaginare che la tecnologia pubblicitaria abbia molti dati così
Trascorro la maggior parte del mio tempo in quella compagnia
scrivere pipeline di dati usando Scala e
SPARC e lo stavamo facendo per il nostro
estrarre trasformi e caricare o lavori ETL
sono quasi tutti fatti in
SPARC è così morto oggi con cui parlerò
tu su alcune delle cose che io
imparato dal lavoro con SPARC con il
aggiunto il vantaggio di analizzare alcuni posseduti
le password pwned con il P è in realtà
pronunciato proprio basta dirlo con un pezzo
silenzioso e gli hacker penseranno che tu sia
fico, credimi, sono uscito da AD Tech
circa sei mesi fa in questi giorni sono un
sviluppatore evangelista a Twilio, dove io
mettersi al lavoro su un sacco di divertimento e
cose interessanti se non lo sei
il familiare Twilio è una comunicazione
società che ti consente di diventare sviluppatori
aggiungi comunicazioni al tuo
applicazioni con le nostre API s per le cose
come il video vocale SMS e l’autenticazione
con l’ identità che è così strettamente legata a
i numeri di telefono che Twilio ha avuto nel
mondo della sicurezza con l’acquisizione di pochi
anni fa che molti di voi potrebbero sapere è
un provider di autenticazione a due fattori
questo è come l’ultimo che parlerò
su Twilio ma da quando lavoro al nostro
I prodotti di autenticazione spendo la maggior parte di
la mia giornata a pensare a come possiamo
convalidare e proteggere il nostro online
identità e password sono state le
modo in cui lo abbiamo fatto su internet
per la maggior parte degli ultimi trent’anni
quando stavo scrivendo questo discorso avevo bisogno
alcuni dati con cui lavorare per mostrare la scintilla
è stato un po ‘più interessante
di pubblicità di dati clickstream
perché non so voi ma io
in realtà non importa quante volte
qualcuno ha guardato un annuncio
sfortunatamente o sfortunatamente per noi
ci sono circa 500 milioni di persone violate
credenziali che sono disponibili per il nostro
esaminando così prima di entrare in quello che sono
cominciando introducendo apache
scintilla sul motivo per cui le persone lo stanno usando
e come è stata sviluppata la lingua
e ti daremo un po ‘di background su
lo stato delle password prima di immergerci
in quei dati che poi mostrerò
tu come la scintilla funziona un po ‘di vita
codice e poi finalmente spendiamo
un po ‘di tempo a parlare delle implicazioni
all’incrocio tra Big Data e
sicurezza in modo che possiamo iniziare guardando
il progetto di scintilla di apache così scintilla
si commercializza come unificato veloce
motore di analisi per big data e
apprendimento automatico e fornisce a
interfaccia funzionale per fare questo
a cui sarà davvero familiare
un sacco di sviluppatori di Scala, ma tu puoi farlo
questo con le lingue e l’elaborazione dei dati
in lingue come Python anche sequel e
anche altre lingue quindi è generalmente
pensato come un miglioramento in cima
Infatti, Hadoop e MapReduce lo erano
costruito su Hadoop e MapReduce ma
è fino a cento volte più veloce di
Hadoop e quindi è per questo che è guadagnato a
molta popolarità ultimamente è perché è così
rende le cose molto più veloci da elaborare
dati ma lo stiamo usando per elaborare grandi
dati in modo che cosa intendo quando parlo di
Big Data
Intendo i dati che non possono stare su un singolo
macchina anche se capacità della macchina
stanno migliorando ogni giorno così
secondo Gary qui non lo facciamo nemmeno
bisogno di scintilla possiamo solo andare a parlare a casa
basta solo avviare questa istanza su AWS
e tutti staranno bene
naturalmente ci sono alcune aziende che
stanno facendo analisi dei dati che petabyte
scala che esegue la RAM su larga scala AWS
le istanze non stanno necessariamente andando a
essere l’ opzione migliore per te ma quando
la gente mi chiede dei grandi dati come uno di
le cose che mi piace mettere in discussione
le persone sono come i tuoi dati in realtà
così grande hai bisogno di uno strumento come la scintilla
per lavorarci, lo daremo per scontato
lo fai per questa presentazione
altrimenti non saresti qui ma lo farò
segnaliamo che su quello della
le cose a lavorare con i Big Data è
conoscendo la dimensione dei dati che sei
lavorando con e come è possibile tagliarlo
giù così divago uno dei maggiori
benefici della scintilla è che ha
supporto integrato da più lingue
e le estensioni di cui ho già parlato
la lingua un po ‘ma anche
ha queste estensioni integrate per cose
come lo streaming e la macchina strutturati
l’apprendimento lo sta davvero promuovendo
capacità per una macchina
ultimamente in AI ma come piace alla mia amica Ryan
dire che l’apprendimento automatico è solo il
carota che penzoli di fronte
ingegneri per convincerli a fare i dati
lavoro di ingegneria quindi penso che sia uno
delle cose che scintilla ha un grande
vantaggio è che ti permette di fare
entrambi sulla stessa piattaforma e quindi penso
che è davvero prezioso per una squadra che
ha bisogno di fare dati scientifici e dati
ingegneria perché la scienza dei dati non lo è
tutta la modellizzazione di machine learning sexy
che potresti pensarlo come sai
se entri in un qualsiasi tipo di dati
squadra di scienze per la maggior parte del tempo che sei
andando a spendere sta facendo i dati
pulizia e acquisizione dati tecnici
cose in un ambiente di analisi
che puoi iniziare a guardare e
analizzando i tuoi dati sui dati
la scintilla laterale di ingegneria ha due principali
astrazioni e così abbiamo iniziato con il nostro
D DS e la nostra DD sono resistenti
set di dati distribuiti questi sono i maggiori
API era un’API di raccolta per il lavoro
con i dati in scintilla e quindi hai un
elenco valutato pigramente in sostanza
è scintille di grande astrazione per il lavoro
con i dati e l’elaborazione dei dati con molto
di interfacce funzionali arteezy
non stanno andando via ma per diversi
ragioni che riguarderanno i dati e le cornici
i set di dati sono ora la principale astrazione
che molte persone sono incoraggiate a usare
Lee completamente indipendente che mi guida
assolutamente pazzo che la carcassa del cammello
non è coerente su questi non è un
typo i set di dati essenziali sono in minuscolo
e vorrei davvero che lo aggiustassero ma
non stanno andando così RTD è un po ‘
un po ‘di più su quelli distribuiti
collezioni con un’interfaccia funzionale
e hanno una API funzionale che piace
Ho detto che avrà familiarità con
per molti sviluppatori di Scala come me
menzionato il mio background è per lo più in
Scala e così come una squadra di scala si sta trasferendo a
la scintilla era piuttosto semplice e tu
puoi vedere come funziona questa API qui in questo
un po ‘ di codice e quindi siamo un appartamento
mappatura mappatura e riduzione in questo
funzione concatenata per ottenere la parola
contare su qualunque sia questo set di dati è di nuovo
i nostri TDS non se ne stanno andando ancora
hanno i loro usi SPARC è facile da usare ma
presto è stato scoperto che gli utenti di
I RDD stavano facendo delle cose cattive
involontariamente e i creatori di
lingua o i creatori del progetto
volevo davvero renderlo facile da usare e
loro erano consapevoli di questo e così
stiamo lavorando per rendere meglio una delle
queste grandi cose che le persone stavano facendo
stava usando questo gruppo con il metodo chiave e
si scopre che questo è veramente lento
e non performante e ci sono di solito
modi migliori per ottenere la cosa che tu
voglio e così di solito le persone stavano facendo
questo per fare qualche tipo di conteggio o per
fare una sorta di analisi su dati simili
stessa e che si potrebbe pensare di un fare
un gruppo di e una query sequel ma gruppo
per chiave era davvero molto lento e così via
rallentato l’esecuzione del programma in alto
e quindi questo è da un dato che porta meglio
guida pratica e mattoni dati è il
società creata dai creatori
di scintilla per offrire un servizio gestito
piattaforma in cima alla scintilla per poter correre
scintilla nel cloud e quindi i mattoni dei dati sono
visto come una fonte autorevole e così
per loro di pubblicare un ragazzo delle migliori pratiche
quello dice evitare di usare questa API che noi
ha scritto per te specialmente in una lingua
come Scala che se sei qui qui per
il Kotlin ha parlato un sacco di cose in
studioso fatto con ID che avresti un
RDD nel tuo IDE e poi vedresti
che questo metodo è disponibile sul tuo ID
RDD e poi diresti oh questo
suona come qualcosa che avrei bisogno di questo
sembra una cosa utile e potresti
non so che è una brutta cosa da usare
di nuovo fortunatamente la squadra era a conoscenza
questo e lavorando su modi per farlo
meglio
quindi come puoi fare cose come gruppo per
in un modo più efficiente ed ecco cosa
ci ha portato a frame di dati e set di dati e
quindi questi sono stati intorno ai frame di dati
sono stati in giro da circa 1,6 ma
cornici di dati e set di dati hanno davvero
solo cittadini di prima classe nel
scintilla mondo da circa la scintilla 2.0 e così via
è stato avviato sviluppando i dati
frame API e che rispecchia qualcosa
come cornici di dati e pitoni panda o
Panda di Python o un linguaggio come R e
quindi per le persone che avevano familiarità con
quel tipo di linguaggi di elaborazione dei dati
questo è molto simile a questo e
quindi i set di dati sono stati sviluppati di più
recentemente in cima a quello di offrire un
API fortemente tipizzata per le lingue come
Scala e Java che offrono tempo di compilazione
sicurezza e questa API funziona con
dati strutturati o semi-strutturati e
contiene molte ottimizzazioni sotto
il cappuccio per rendere questo molto più veloce
che lavorare con rdd e perché dati
è effettivamente necessario uno schema
a seconda di cosa stai facendo lì
circa tre volte più veloce rispetto all’utilizzo
rdd è così se lo stai facendo se lo sei
questo è con i dati strutturati
sicuramente la strada da percorrere anche loro
fornire un sequel come DSL in modo che tu possa fare
alcuni di quelli raggruppati da query che tu
vorrei fare sui tuoi dati e avere
quelli sono abbastanza veloci e puoi vederlo
sequel come DSL in questo esempio di codice
guarderà più a che più tardi, ma si può
anche usare il sequel crudo su quello in poi
cima a set di dati e di nuovo questo va
torna al fatto che come sai
SPARC è un nuovo sequel interessante, non lo è
una cosa nuova, ma si scopre sequel
è davvero molto utile e alcuni dei
i migliori scienziati di dati che ho lavorato
con sono davvero molto bene con
sequel perché quello è l’ universale
linguaggio per lavorare con i dati e così io
penso che sia davvero grandioso che la scintilla abbia
lo ha riconosciuto e si sta integrando
così da vicino nella sua API così tu
ricorda questo ecosistema e il fatto
che inizia per le sue molteplici lingue
includendo linguaggi come R in Python I
voglio sottolineare che Scala ancora
è l’ API linguistica più solida che sia
ancora più veloce quando si usa RDD e questo
supporta anche cose come il forte
set di dati digitati che non sei proprio
entrerà in una lingua come Python
perché Python non ha tempo di compilazione
tipo di controllo intendo che tipo di fa in
Python 3 ma sto divagando
è anche quasi tutto scala sul
cappuccio per scintilla e quindi se hai bisogno di scavare
nel codice sorgente avrai a
beneficio per conoscere Scala lì e
inoltre un sacco di cose nuove e
nuove funzionalità che vengono rilasciate nella scintilla
vieni prima per Scala e così potresti
aspettare per averlo in una lingua
come Python
mentre Scala lo sosterrà prima
uno dei grandi svantaggi all’inizio
loro erano Python era molto più lento
di Scala e quindi questo è uno dei
ragioni che ho menzionato per essere alla Scala
un po ‘meglio come scelta della lingua
per lavorare con SPARC e così faresti
avere persone che imparerebbero semplicemente Scala
usare SPARC in modo che potessero prenderne un po ‘
miglioramenti rapidi delle prestazioni senza
dovendo conoscere il cluster di scintille
messa a punto se qualcuno di voi ha familiarità con
Deane Wampler ha un molto popolare
tutorial che è chiamato semplicemente Scala
per SPARC
e penso che sia fantastico ma come
puoi vedere con i dati
frame API tutto questo tipo di prestazioni
di uscire dalla finestra la performance
le differenze invece andarono fuori dalla finestra
e ora è altrettanto veloce con cui correre
i frame di dati api e python o r come
è con scala ed è perché il
modo in cui viene costruita quell’API
tutti eseguendo lo stesso codice sotto il
cappuccio in sostanza crea un sequel come
livello di esecuzione ed è in grado di farlo
perché l’hai fornito con uno schema
con i dati perché stai lavorando
con una sorta di dati strutturati che sono
davvero entusiasta di vedere dove i dati
la comunità va con questo penso che abbiamo
visto un sacco di persone che usano principalmente SPARC
con Scala ma anche come ingegnere alla Scala
e alcuni dei benefici che ho già
ho detto che penso che i pitoni avranno un
enorme vantaggio andando avanti solo
a causa del supporto della comunità e
alcune delle librerie sono già
supportato nella scienza dei dati di Python
comunità e set di strumenti così che alcuni di
le basi di SPARC e dove siamo
con il progetto oggi volevo spendere
solo un paio di minuti a parlare di
lo stato della password dal momento che sta per
contribuire ad informare alcune delle analisi che
stiamo facendo come ho detto che spendo a
molto tempo a pensare
autenticazione e abbiamo un grosso problema
quando si tratta di sicurezza delle password e
quello è che le persone riutilizzano le password e
usano password brevi e
ovvio e facile da indovinare e questo è un
problema perché anche se non ti interessa
se il tuo account myspace viene hackerato e
ogni account myspace è stato violato
recentemente come tre anni fa, se è così
recente questo è un problema perché se
stai utilizzando lo stesso set di credenziali
da MySpace come lo sei stato per la tua email
o il tuo account Bitcoin che stai per fare
passare un brutto momento e questo perché
gli hacker amano questo ragazzo e tu lo sai
ragazzo è buono perché oltre a tutto ciò
crittografia ha ottenuto la parola hackerata
leggi che conosci hacker come questo ragazzo
Comprerò le tue credenziali trapelate
Internet e usarli attraverso i siti
su Internet per cercare di fare soldi e
le persone lo fanno ancora perché c’è un
molti modi creativi o anche non così
modi creativi che possono fare soldi
fuori dalle credenziali del tuo account così tu
potrebbe sperare che nessuno faccia questo nessuno
utilizzare come password stupido come uno due
tre quattro cinque e sei nessuno lo scrive
la loro nota adesiva, ma ovviamente le persone
fare
in effetti questa password uno-due-tre
quattro-cinque-sei è stato visto oltre i 20 anni
milioni di volte e questo è secondo
il sito sono stato di proprietà che spero
molti di voi hanno già controllato
e questo progetto dalla sicurezza
ricercatrice Troy Hunt
Troy Hunt ha accesso a molti
dati di password da centinaia di violazioni
violazioni dei dati negli ultimi anni
e fornisce un’interfaccia web per
cercando se la tua email è stata
incluso in una di quelle violazioni
c’è anche un’interfaccia per la ricerca
se la tua password è stata inclusa
in una di quelle violazioni e c’è a
accoppiare altri modi a cui è possibile accedere
questi dati c’è un’API per te così tu
può chiamare quell’API con una password raw o
una password con hash o che puoi scaricare
tutti i dati della password e questo è ciò che
useremo oggi mettersi in mostra apache
scintilla quindi sono interruttore andando oltre lattina
tutti vedono che va bene il carattere abbastanza grande
okay, quindi i dati che diventeremo
guardando è il dump dei dati da Apache
o dal proprio sito di password e questo
i dati arrivano in un formato specifico e così via
viene fornito con password hash e il
contare il numero di volte il
la password è stata vista per il gusto di
tempo con cui ho già unito i dati
alcuni dati di testo in chiaro noto come
password e quindi abbiamo dati più piccoli
imposta qui con cui possiamo lavorare perché
lavorare con le password hash è solo così
interessante quindi stiamo andando essere alla ricerca di
le password in chiaro lo strumento che
Sto usando qui si chiama Zeppelin questo
è un’alternativa open source a
qualcosa come i mattoni dati che consente
a far scoccare localmente o su a
macchina che si sceglie e quindi questo è un
distribuzione che ho appena in esecuzione
localhost è un po ‘come un Giove
notebook in modo che tu possa fare qualcosa con
questo e ha una scintilla costruita
interprete e quindi è davvero bello
modo di alzarsi e correre e demo scintilla
per amore di qualcosa di simile e
quindi vado avanti e leggo nel nostro
dati della password l’ ho già scritto
a un CSV e quindi posso inserire tutti i nostri
password ora e andiamo avanti e vediamo
quante password abbiamo lasciato correre
così abbiamo circa 700.000 password
lavoro
con adesso sembra tutto a posto
noterai che possiamo anche fare un
controllo dello schema su questo si può vedere a
un po ‘ di quello nell’output che noi
già abbiamo ma possiamo stampare lo schema
usando la scintilla questo non è esattamente ciò che noi
vuoi che il nostro CSV abbia un’intestazione in modo che possiamo andare
avanti e utilizzare quella intestazione impostando il
opzione su questo per interpretare la nostra intestazione
e una volta fatto lo faremo un po ‘
un po ‘di nomi di campo più belli quindi abbiamo il nostro
password il nostro hash e il nostro conta uno
cosa che ancora non abbiamo è la
tipi corretti per tutti quelli e quindi contare
sta per non essere un file di stringa che vogliamo
noi per essere in grado di supportarlo con i numeri
e quindi possiamo dirlo per dedurre il
schema e ora abbiamo lo schema che
vogliamo avere password e hash
quali sono stringhe e conteggi che sono
interi prima che effettivamente li stampiamo
fuori però ho bisogno di fare qualcos’altro
e questo perché c’è molto
cose veramente cattive che le persone
includere nelle password e questo è un
bel forum pubblico e io non voglio
una di quelle cose che appaiono su questo
schermo quindi non ho già filtrato quelli
fuori lo farò ora e così ho
un file di testo con un sacco di parolacce dentro
ciò che non vogliamo includere e noi
può leggere in quel file di testo esplicitamente
ci sono 63 parole che usano la tua
immaginazione per ciò che questi includono e
andremo avanti e aderire a questi set di dati
insieme e così posso unire le nostre parolacce
e mi unirò a questo sul nostro
colonna password e se questo contiene il nostro
parolaccia e poi invece di fare a
inner join lo specificheremo
questo è un join ante ante e quindi il
lo schema sembra lo stesso, ma io voglio
stampare un conteggio qui per assicurarsi che noi
meno e sì sì, ci siamo sbarazzati di
circa 20.000 password per farlo
sono già un set di dati un po ‘piccolo
e questo è un sacco di password
contiene alcune cose cattive, quindi usa il tuo
immaginazione come ho detto
non stiamo andando a mostrare che fino
qui così ora che abbiamo che possiamo andare
avanti e mostrare ciò che è più popolare
le password sono e le useremo
questo sequel come la sintassi per fare questo e
quindi possiamo andare avanti e ordinare dal nostro
Conteggio chiama quella discendente e poi
possiamo mostrarli e quindi ha una mano
funzione per mostrare le 20 cose principali questo
interpreterà tutto perché noi
devo ordinare comunque, ma se
non avevi nessun tipo di ordine
operazione avrebbe valutato questo pigramente
e tira solo le prime 20 cose e così
questi sono su quello che ti aspetteresti
numeri sequenziali tutta la propria la parola
password queste sono davvero deludenti
risultati la parola password è apparso
oltre tre milioni di volte e set di dati
e quindi è davvero divertente saperlo per favore
non usare questi come password ma
lì possiamo fare qualcosa di più interessante
cose con questo ora e così uno dei
le cose che voglio fare è scoprire
quale è la lunghezza più comune di a
la password è e quindi possiamo aggiungere una colonna
a ciò usando l’operatore della larghezza della colonna
e chiamero ‘ quella lunghezza di colonna
sequel o scintilla sequel ha un built in
funzione di lunghezza in modo che possiamo andare avanti e
uso che otterrà la lunghezza di tutti
le nostre password e così ora che abbiamo
che una delle cose interessanti che possiamo
fare è andare avanti ed eseguire un sequel crudo
sulla nostra tabella delle password e così è
davvero fantastico se stai lavorando con
qualsiasi tipo di squadra che potrebbe sapere come
ci sono programmatori ma ce l’ha
analisti di business e niente sequel e così via
puoi andare avanti e scrivere sequel come
avresti sempre voluto avere te
puoi scrivere il tuo CEO e il tuo alcuni di
conta e potresti prendere questo dal tuo
tabella delle password e poi ho intenzione di
raggruppa e ordina per la nostra lunghezza e io
non ha salvato la tabella delle password come
tabella in modo che abbiamo bisogno di creare effettivamente un
guarda per questo e abbiamo bisogno di darlo
un nome in modo che sappia cosa siamo
selezionando da e così andiamo avanti e
fallo e poi possiamo selezionare dal nostro
tavolo e una volta che eseguiamo questo Zeppelin
fornisce alcune funzionalità integrate
è fantastico, quindi puoi fare le cose
come avere grafici a torta grafici integrati voi
può pensare a come potrebbero essere i grafici a dispersione
essere interessante o grafici a dispersione sarebbe
interesse
per un certo tipo di modellizzazione o valore anomalo
dati che penso per i nostri scopi di trovare
le lunghezze più comuni dei grafici a barre
abbastanza facile da leggere e quindi qui è possibile
vedere che le password di 6 caratteri sono le
il più comune che non mi sorprende come
il fatto che sei e otto caratteri
i requisiti minimi della password sono molto
comune a Twilio la nostra password minima
il requisito è di 14 caratteri e quello
infastidisce un sacco di gente ma lo fa
le password sono molto più sicure e anche
incoraggia le persone che usano la password
i manager sono così cool ora che abbiamo finito
quella delle altre cose che voglio
mostra di Zeppelin veramente veloce che ha
alcuni strumenti di analisi incorporati molto interessanti
quindi puoi fare qualcosa come il filtraggio
la password su una password come artigli
e così potresti farlo per qualcosa a
parola come Chicago andiamo avanti e mettiamo
che tra virgolette e così potresti farlo
ma poi puoi fare un ulteriore passo avanti
e rendi questo un campo configurabile e
quindi dovremo specificare che questo è un
campo ci stiamo aspettando che su e così ora
puoi vedere che questa questa casella di testo
arriva e così puoi vedere tutti questi
password che contengono la parola Chicago
ovviamente la lunghezza minima è lì
intenzione di essere 10, ma potrei cambiare questo
per essere il mio nome, ne avremmo un sacco
persone che hanno 11000 persone nominate
Kelly è strano o potresti saperlo
fai di questo Scala quello che vuoi io
sarei sorpreso se ci fosse qualcuno
oh mio Dio è probabilmente da qualche parte che
contiene la parola Scala, ma comunque in modo
ci sono un sacco di cose interessanti che tu
può fare con questo e penso che questo sia un
davvero un bel tipo di strumento di condivisione
puoi schierare e utilizzare all’interno di una squadra
ed è tutto open-source e così tu
dovrebbe riuscire a implementare
di Zeppelin ma questo è attivamente
in fase di sviluppo e penso che ce ne siano alcuni
potenziale davvero interessante per l’utilizzo di uno strumento
come questo, ma tu ne conosci qualcuno
metadati sulle password, in realtà
il divertimento è se in realtà scavare nel
dati della password Una delle cose ovvie
su cui puoi iniziare a guardare
le password è come ciò che essi contengono in
le vere parole simili e così puoi
guarda i nomi propri e potresti
avvicinarsi a questo come pochi dati diversi
set che potresti guardare come celebrità
nome
o luoghi geografici che userò
nomi di cani perché amo i cani che non posso
avere uno nel mio appartamento non sono amaro
va bene così posso leggere nel nostro cane
JSON e possiamo stampare lo schema su questo
e questo sarà un cane popolare
i nomi di I think 2006 e così puoi
vedere che è l’ inferenza dello schema su
anche il nostro file JSON, vado avanti e
tiralo su e così è questo il nostro
JSON sembra una delle cose migliori
pensa all’inferenza dello schema da
scintilla e soprattutto il seguito di scintilla
e data frames e data set API è se
Vado in e aggiungi il cibo preferito di Max qui
diciamo che è il pollo che vogliamo
minimizzalo di nuovo perché scintilla
non mi piace la linea JSON multipla se vado
avanti e stampare di nuovo lo schema su questo
è riconosciuto che il cibo è ora parte di
lo schema anche se questo sta per
essere una colonna nulla per ogni altro valore
lì dentro e quindi è abbastanza bello
perché i nostri dati impostati qui erano
lavorare con è piuttosto piccolo ma puoi farlo
immagina se hai dati di registro JSON
è molto incoerente con il tipo di
campi che ha se è un
schema semi-strutturato che puoi fare
l’inferenza dello schema per capire se
esistono quei campi che puoi usare a
ispezionare i tuoi dati e scintilla farà il
Sollevamento pesante lì non devi
costruire tutti gli encoder per la comprensione
che tipo di campi ci sono nel tuo JSON e
ti permette anche di cambiare il tuo JSON a
un po ‘più perfettamente perfettamente così
ora che abbiamo che possiamo andare avanti
e ricongiungersi a queste cose insieme a
le nostre password e vediamo cosa è contenuto
in quelli così vogliamo le nostre password
colonna password e che contiene il nostro
colonna di cane e poi sto solo andando
di default si tratta di un interiore ti unisco
non è necessario fornire il tipo di join
che è andata avanti e dimostrarlo
bene, prima selezioniamo solo i campi
che vogliamo e quindi voglio il nome oops
la password e poi il divano e
ordiniamo anche questo in ordine decrescente
contare
questo perché non ho digitato il giusto
campo va bene così ora che abbiamo questo
otterremo i nomi dei cani con il nome più comune
che sono nelle password del nostro amico Charlie
qui è molto amato puoi vedere che lui è
si presenta in circa 15.000 password una
altra cosa che voglio mostrarti ora
è possibile così abbiamo guardato la lunghezza
funzione che è una funzione integrata
per le scintille uguali ma puoi definire il tuo
proprie funzioni UDF o definite dall’utente e
quindi trovo quello che è
minuscolo e questo è un UDF e il
la sintassi per questo è un po ‘strana quindi
questo è preso in una stringa e poi lo faremo
emetti qualsiasi cosa tu dica e poi
puoi scrivere questo nel codice accademico
e così ora che ho che posso andare
avanti e minuscolo il nome del mio cane e vedere
se è più comune vedi come noi
abbiamo la nostra funzione definita dall’utente lì e
così ora le nostre password sono saltate fuori
15.270
ottomila volte che Charlie ha
è stato usato nei nomi delle password, quindi è così
conosci un po ‘triste e felice al
Allo stesso tempo, Charlie è molto amato ma
probabilmente non usare il nome del tuo cane nella tua
password Sto per interrompere il codice live
lì perché ce n’è un altro paio
cose che voglio concludere bene
sì, se non altro penso che abbiamo
imparato a non includere i nomi dei nostri cani in
le nostre password davvero in questo intero discorso
Mi sono girato usando un tweet sui diritti dei cani
Ho modificato il testo di questo lui
non ha effettivamente smsato sull’uso
password eh
sfortunatamente forse un giorno ma in tutto
serietà alcuni dei vantaggi di
usando una scintilla che penso di aver visto così
non solo è veloce e flessibile ma
è davvero buono per l’esplorazione e
è provato per sistemi di grandi dimensioni e quindi io
mi piace davvero tanto che tu possa sopportare
qualcosa come la scintilla che è davvero
robusto e usare qualcosa come dimostrato e
provato come un linguaggio come il sequel e l’uso
allo stesso modo penso che stia andando
per essere davvero potente per le squadre che
lavorare insieme in dati scientifici e dati
capacità di ingegneria so che ho fatto
quello in diverse aziende ed è
molto molto prezioso avere un set di strumenti
che può funzionare per entrambe le squadre e qualsiasi
tipo di set di strumenti che sta per supportare
questo avrà un enorme vantaggio
ovviamente non siamo senza sfide
e voglio evidenziare alcuni dei
sfide e operazionalizzazione perché
mentre è abbastanza facile per me girare
Zeppelin sulla mia macchina locale è
sicuramente non è così facile farlo attraverso
un cluster di dati e questo è il tutto
la ragione per cui questo è utile è perché
vuoi essere in esecuzione qualcosa di simile
questo su dati distribuiti è ancora un
giovane progetto come ho già detto
è stato solo GA per circa tre o
quattro anni e tutto questo sta diventando
sempre tutto è sempre nuovo
strumenti che stanno uscendo il
la documentazione è attualmente
costantemente migliorata la nota secondaria
qui che puoi trovarli nel mio
diapositive quando pubblico loro Heather Miller
chi è un professore di informatica e
fa molte ricerche e lavora con
SPARC e Scala hanno appena pubblicato questo
ottimo post sul blog all’inizio di questo mese
come distribuire SPARC su un cluster perché
questo non è qualcosa che è realmente esistito
prima all’inizio di questo mese e quindi lei è un
ottimo tutorial per che se si desidera
controllare che ho incluso questo errore
messaggio sulla possibilità off della mia vita
la codifica è andata perfettamente, ma questo è
qualcosa che non abbiamo visto quale è
puoi ottenere questi errori veramente annidati
messaggi che sono veramente pazzi e
oscuro e difficile da seguire quando sei
lavorando con un linguaggio come SPARC questo
è qualcosa quando ero inizialmente
esplorando nuovamente questo set di dati solo sul mio
macchina locale stavo cercando di unirmi a due
tavoli insieme e stavo ottenendo un
messaggio oscuro davvero oscuro che era
dicendo che la chiave di join non è stata trovata
ma non mi stava dicendo quale chiave di join io
stava cercando e quindi ci sono cose
come quello che sono ancora un po ‘
difficile da analizzare attraverso e
capire dove stai effettivamente facendo
errori riguardo alla documentazione I
voglio dare un grido a questo
documentazione che è stata compilata da
Sacco di yacht e così ha la documentazione
per il mastering a parte scintilla apache e un
guida di accompagnamento per la masterizzazione della scintilla
seguito che potresti aver notato durante il
porzione di codice live che ce ne sono alcuni
diversi modi in cui abbiamo guardato
quali colonne di dati stavamo cercando di tirare
quindi c’era quella citazione del segno del dollaro
metodo che è un alias per accedere a
colonna che è un alias per l’accesso
il tavolo che funge da colonna c’è
come un sacco di modi diversi che puoi fare
questo e niente di tutto ciò è terribilmente bene
documentato ma lo psicologo Yap ha fatto tutto
quella documentazione per noi, quindi sono molto
grato per lui so che è qualcuno
quello è stato
lavorando con scintilla tanto che ho
fatto riferimento a questo molto e non è super
facile da trovare perché non fa parte di
la documentazione ufficiale quindi se lo sei
parte della comunità scintilla e tu sei
lavorando con questo genere di cose
sicuramente contribuire tanto quanto
è possibile e, infine, voglio lasciarvi
pensando a parte della sicurezza
implicazioni del lavoro con i big data
è uno strumento davvero utile per la ricerca
cose brutte e per analisi di grandi dimensioni
sistemi e ottenere approfondimenti sul tuo
affari ma potresti anche essere il
obiettivo del prossimo database compromesso
Penso che la privacy dei dati sia su tutti
mente ultimamente
che si tratti di gdpr e come lo dico io
di te potresti rabbrividire perché è tutto
hai pensato che l’ ho visto
è tutto quello a cui hai pensato
ultimamente e questi sono la privacy europea
regolamenti che stanno entrando in vigore
il mese prossimo è per questo che tutti voi
le aziende ti stanno inviando email in questo momento
dicendo che hanno aggiornato i loro Termini
di servizio e questo è a causa di questi
regolamenti sulla privacy e questo è
qualcosa che è stato molto molto fresco
la mente di tutti, soprattutto l’anno scorso
con cose come la violazione di Equifax di più
recentemente anche con il Cambridge
scandalo analitico che tutti pensano
su InfoSec e su come influenza il tuo
giorno per giorno e a questo punto siamo davvero
non può separare sicurezza e software
sviluppo quindi se tu se stai lavorando
su qualsiasi tipo di team di ingegneri se
questo è il team di sicurezza o no
si prega di essere consapevoli dei dati che memorizzi
e come stai accedendo perché
la sicurezza di nessuno è perfetta se lo hai
influenza sulla sicurezza al tuo
società compresa se la vostra azienda e
soprattutto se la tua azienda è troppo piccola
per avere un team di sicurezza dedicato, per favore
assicurati di scappare le password
o altro personalmente identificabile
informazioni in sicurezza molte delle
motivi per cui i dati della password sono accessibili
è perché tutte queste violazioni dei dati
stavo memorizzando le password in un modo
potrebbe essere decodificato in qualcosa che era
referenziabile o qualcosa che potrebbe essere
ricercabile e lo stesso vale per la posta elettronica
indirizzi che sono tutte le loro informazioni personali
le persone possono usare per violare gli altri
spiega questo tweet se non l’hai visto
è venuto da una conversazione precedente
mese su Twitter dove è stato rivelato
che t-mobile o almeno due mobili
L’Austria era una storia in chiaro
password e purtroppo questo supporto
agente davvero raddoppiato giù su quel
non essendo un problema che ovviamente noi
so non è vero in modo che sia dalla
lato azienda delle cose cosa si può fare
come un consumatore che probabilmente predica al
coro e un pubblico come questo, ma usa
un gestore password si accende su FA
ovunque siano offerte queste due cose
da solo ti offrirà una grande quantità di
sicurezza e la tua identità personale
online e come ingegneri e persone
potrebbe essere un po ‘più esperto in
queste cose puoi anche fare molto
incoraggiare i tuoi amici e familiari a
inizia ad adattare queste pratiche – mio padre
utilizza un Excel protetto da password
foglio di calcolo per memorizzare le sue password e
onestamente sono piuttosto orgoglioso di lui perché
bene lo prenderemo su LastPass
alla fine, ma la cosa importante
questa è la mentalità della sicurezza
e un sacco di volte che può essere il
più grande ostacolo nel convincere qualcuno
che hanno bisogno di pensare al loro
privacy online un po ‘di più
fortemente così grazie per avermelo fatto
passare un po ‘di tempo con te questo pomeriggio
tuffarsi nella scintilla e alcuni dei
attraverso la lente delle proprie password che amo
chiacchierando di queste cose quindi spero
Ti ho ispirato a scavare nel tuo
dati con scintilla di Apache se si dispone di grandi dimensioni
dati e soprattutto penso scintilla e
in particolare il sequel delle scintille è davvero grandioso
strumenti per fare un sacco di potenti
analisi ho anche deciso che questo io
le cattive foto degli hacker sono solo
esilarante e ho deciso questa signora
scheletro stock foto qualunque cosa sia
il mio alter ego, ecco perché sto chiudendo
con questo pubblicherò queste diapositive sul mio
Sembra che Twitter SlideShare abbia
alcuni problemi in questo momento, ma avrò
sono pronti per voi presto avrò un
tutorial pronto sul mio blog presto per mostrare
tu come iniziare con il tuo
i dati con la scintilla di Zeppelin e Apache vengono
trovami dopo questo se ne hai
domande sulla scintilla di Scala o sulla sicurezza
ancora una volta mi chiamo Kelly Robinson
si prega di utilizzare un gestore di password e grazie
per l’ascolto
Grazie Kelly e oggetti di scena pazzi per il
codifica dal vivo in realtà abbiamo un po ‘
tempo per alcune domande dal
pubblico se ne abbiamo qualcuno se qualcuno
inviato alcuni dall’app all’app o se
solo causare qualcosa così nella mia azienda
stiamo usando non solo la scintilla con Scala
ma anche la scintilla di PI va bene così quando arrivi
errori è incredibile perché si ottiene
entrambe le chiamate stack stack in Python e
Chavez e Java allo stesso tempo aspettano
oh no yay come approfondisci le cose
come quando qualcosa va storto
specialmente se sto insegnando a qualcuno
hai un modo per figure come Oh
iniziare dall’inizio o iniziare da
N o che è davvero una buona domanda che mi
non ho un sacco di esperienza lavorativa
con Pi scintilla quindi non ne ho tanto
offrire sul debug di tracce dello stack Python
sembra davvero impegnativo, intendo un
molte volte capisce cosa
i tuoi schemi sono ciò che il tipo di dati
con cui stai lavorando usa le cose
il più possibile come set di dati I
in realtà non ho dimenticato di andare in
set di dati lato della cosa, ma è possibile utilizzare
Api fortemente tipizzate che ti aiuteranno
fare un po ‘di un po ‘ di
compilare il più possibile la sicurezza del tempo
ancora non sarà possibile con
qualcosa come Python ma onestamente piace
un sacco di dichiarazioni di stampa per vedere cosa
i tuoi dati sembrano iterativamente uno di
le cose che puoi fare con la scintilla
e soprattutto Scala e potrebbe essere
simile in Python mi hai visto un po ‘
concatenare i metodi insieme e così è
qualcosa che molte persone faranno
è così hai subito una operazione
l’altro e poi rompere quella come
il più possibile per vedere dove qualcosa
sfortunatamente purtroppo non ho molto
altro da offrire rispetto a quello che hai menzionato
Dean Wampler ‘è appena sufficiente per Scala
Scintilla Apache sì, ho trovato che può essere un
buona risorsa ho avuto clienti dove
Ho appena mandato il loro poeta a indicarglielo
analisti di dati che hanno un Python
sfondo e insegnare loro abbastanza
Scala da scrivere
Scala SPARC solo per il debug
è molto più facile
raffreddare eventuali altre domande dal
pubblico o persone che mettono in scena
l’ app altrimenti ho due domande
prima di tutto è Apache Zeppelin
qualcosa che potrei scaricare e installare
sul mio computer portatile, se volevo essere cool
scintilla demo come quella di vivere te
assolutamente
così Zeppelin è open-source è
disponibile quindi cerca Apache Zeppelin e
sarai in grado di configurarli
avere alcuni tutorial sul loro sito Web per
ricevendolo impostato su un cluster
Stavo seguendo il blog di qualcuno che era
come distribuire la scintilla di Apache su un locale
macchina così potresti essere in grado di cercare
per questo per installarlo e lo farò
includilo anche nel mio prossimo tutorial
e fare qualsiasi nuvola prominente
i fornitori di infrastrutture hanno una scintilla
offerte che potrei usare assolutamente così
Non conosco la piattaforma cloud di Google
se qualcuno qui lavora per Google e
vuole correggermi così quando ero
eseguendo questo in produzione nel mio ultimo
azienda stavamo usando AWS come elastico
MapReduce che è uno strumento per la corsa
scintilla nella nuvola e si può eseguire
con la tua AWS s3 esistente, quindi abbiamo avuto tutto
dei nostri registri memorizzati in s3 e poi tu
si può usare se si vuole parlare di
autenticazione sto impedendo il provisioning
o credenziali per accedere a diversi
set di dati e utilizzare cose del genere se
stai facendo qualcosa del genere in a
cluster avrai bisogno di qualche tipo
di programmatore per farlo e così sei
avrò bisogno di usare qualcosa del genere
filato o può cucire e poi ci sono anche
servizi gestiti come ho detto così
cose come i mattoni dati ti permetteranno
per farlo senza dover girare
i tuoi stessi gruppi ma quelli vengono con
i costi e quel costo sono loro
caro, e penso che abbiamo tempo
per un paio di più qualsiasi altra cosa dalla
pubblico altrimenti ne ho uno o due
Di Più
solo per ripetere la domanda è
c’è un buon profiler che può esplorare a
utilizzo della memoria scintilla che non ho usato
qualsiasi cosa su AWS
So che i mattoni di dati ha alcune che
costruito nella loro applicazione eravamo
roba da corsa su una miscela di AWS e
mattoni di dati in modo da poter vedere come
sei nei mattoncini dei dati puoi vedere il
controllo della memoria puoi anche scavare
quello nei log quando qualcosa è
in esecuzione su EMR e in base a come tu
avere impostato se è persistente
cluster o un cluster temporaneo, se lo sei
facendo lavori in serie cluster temporanei
a volte perderemo i dati del registro dopo
il fatto se così si deve guardare
mentre in realtà è in esecuzione uno dei
le cose che un sacco di gente fa quando
arrivano al punto di aver bisogno di
fai la messa a punto della scintilla è sufficiente aggiungere altro
macchine perché a volte può essere
più facile che cercare di essere una scintilla
esperto in modo che fosse generalmente nostro
soluzione una cosa che mi è venuta in mente
io sono una cosa fantastica per il
scintilla ecosistema è ha dati
connettori per quasi tutti i file
sistema e database Sotto il sole a destra
da neo4j a database relazionali a un
s3 e HDFS hmm
Mi stavo chiedendo se aneddoticamente lì
c’erano quelli che hai trovato funzionanti
particolarmente bene o erano particolarmente
doloroso sì, lo sono anche molti dei nostri dati
in formato JSON mentre lo stavamo leggendo
in e così era solo una specie di un
cosa esistente che abbiamo dovuto affrontare
ma abbiamo scoperto che era molto veloce
scrivere i dati per parcheggiare il formato e questo è
un altro interprete supportato da SPARC
e quindi è davvero molto efficiente
tipo di un connettore dati che puoi
stai lavorando con SPARC
quello in s3 o solo un HDFS o locale
file che stavamo facendo in s3 e in c
Stavo salvando i file di parte K e poi tu
hai lo svantaggio con
salvare qualcosa come parte K è così
non è così facile come leggere i dati
se vuoi solo ispezionare come un
file individuale che puoi fare se
stai salvando e poi qualcosa del genere
Formato JSON ma è molto più veloce
perché è compresso freddo oh e noi
ha ottenuto una domanda dal pubblico
scintilla ml lib o tensorflow pro e contro
oppure oppure si può eseguire tensorflow sulla scintilla
in qualche modo NON sono uno scienziato dei dati in cima
di SPARC Ho lavorato con la scienza dei dati
quindi non sono la persona migliore per rispondere
così lo rimanderò a qualcun altro
qualcun altro ha qualche esperienza
con quello non so di tensorflow
ma quello che dirò è che ml lib è contro
l’API RTD penso e SPARC ml è il
equivalente al frame dei dati è un po ‘
livello più alto penso che tendo ad avere
risultati migliori
lavorando in spark ml cool grazie a tutti
va bene un altro giro di applausi per
per Kelly
[Applausi]

Please follow and like us: