Strumenti di data science con Scala


15

So che Spark è completamente integrato con Scala. Il suo caso d'uso è specifico per grandi set di dati. Quali altri strumenti hanno un buon supporto Scala? Scala è più adatta per set di dati più grandi? O è adatto anche per set di dati più piccoli?


2
Vuoi anche conoscere i toolkit di Machine Learning come ad esempio FACTORIE?
Erik Kaplun,

Sembra pertinente alla mia domanda, sentiti libero di condividere di più.
Sheldonkreger,

Risposte:


11

Ri: dimensione dei dati

La breve risposta

Scala funziona con dati piccoli e grandi, ma la sua creazione e sviluppo è motivata dalla necessità di qualcosa di scalabile. Scala è l'acronimo di "Scalable Language" .

La lunga risposta

Scala è un linguaggio di programmazione funzionale che gira su jvm . La parte "funzionale" di questo è una differenza fondamentale nel linguaggio che ti fa pensare diversamente alla programmazione. Se ti piace questo modo di pensare, ti consente di lavorare rapidamente con piccoli dati. Che ti piaccia o no, i linguaggi funzionali sono fondamentalmente più facili da ridimensionare in modo massiccio. Il pezzo jvm è anche importante perché il jvm è praticamente ovunque e, quindi, il codice Scala può essere eseguito praticamente ovunque. (Nota: ci sono molti altri linguaggi scritti su jvm e molti altri linguaggi di programmazione funzionale , e le lingue oltre Scala appaiono in entrambi gli elenchi.)

Questo discorso offre una buona panoramica della motivazione alla base di Scala.

Ri: altri strumenti che hanno un buon supporto Scala:

Come hai detto, Spark (elaborazione batch distribuibile meglio con algoritmi iterativi rispetto alla sua controparte) è un grande. Con Spark arrivano le sue librerie Mllib per l'apprendimento automatico e GraphX per i grafici. Come menzionato da Erik Allik e Tris Nefzger, esistono Akka e Factorie . C'è anche Play .

In generale, non posso dire se c'è un caso d'uso specifico per cui stai scavando (in tal caso, fai una parte della tua domanda), o vuoi solo un sondaggio sugli strumenti dei big data e capisci che Scala è un po 'e vuoi per iniziare lì.



4

Dall'ascolto alle presentazioni di Martin Odersky, il creatore di Scala, è particolarmente adatto per la costruzione di sistemi altamente scalabili sfruttando costrutti di programmazione funzionale in combinazione con l'orientamento agli oggetti e la sintassi flelxible. È anche utile per lo sviluppo di piccoli sistemi e la prototipazione rapida perché richiede meno righe di codice rispetto ad alcune altre lingue e ha una modalità interattiva per un feedback rapido. Un notevole quadro di Scala è Akka che utilizza il modello di attore del calcolo simultaneo. Molte delle presentazioni di Odersky sono su YouTube e c'è un elenco di strumenti implementati con Scala su wiki.scala-lang.org.

Un punto implicito è che gli strumenti e i framework scritti in Scala hanno intrinsecamente l'integrazione di Scala e di solito un'API Scala. Quindi altre API possono essere aggiunte per supportare altre lingue a partire da Java poiché Scala è già integrata e di fatto dipende in modo critico da Java. Se uno strumento o un framework non è scritto in Scala, è improbabile che offra supporto a Scala. Ecco perché in risposta alla tua domanda ho indicato strumenti e strutture scritte in Scala e Spark ne è un esempio. Tuttavia, Scala ha attualmente una quota minore del mercato, ma il suo tasso di adozione è in crescita e l'alto tasso di crescita di Spark lo migliorerà. Il motivo per cui utilizzo Scala è perché l'API di Spark per Scala è più ricca delle API Java e Python.

Le ragioni principali per cui preferisco Scala in generale sono perché è molto più espressivo di Java perché consente e facilita l'uso di funzioni come oggetti e valori mantenendo la modularità orientata agli oggetti, che consente lo sviluppo di programmi complessi e corretti con molto meno codice di Java che Avevo preferito a causa dell'uso diffuso, della chiarezza e della documentazione eccellente.


1
Questa è un'ottima informazione su Scala in generale, ma sto cercando informazioni su strumenti o framework specifici per la scienza dei dati che hanno l'integrazione di Scala, e perché Scala è un buon linguaggio per quegli strumenti da usare.
sheldonkreger,

0

Scala è adatto sia per applicazioni di data science grandi che piccole. Considera DynaML se sei interessato a provare una libreria di apprendimento automatico che si integra bene con Apache Spark. È ancora agli inizi, per così dire in termini di numero di modelli offerti, ma lo compensa con un'API di machine learning ampia e flessibile.

Per dare un'occhiata ad alcuni esempi di casi d'uso prendere in considerazione (di più da dove proviene)

  1. Identificazione del sistema - Abott Power Plant

Disclaimer: sono l'autore di DynaML


Se questo è il tuo progetto, ti preghiamo di notare la tua affiliazione.
Sean Owen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.