Data Science Tools mit Scala

15

Ich weiß, dass Spark vollständig in Scala integriert ist. Der Anwendungsfall ist speziell für große Datenmengen. Welche anderen Tools unterstützen Scala? Ist Scala am besten für größere Datensätze geeignet? Oder eignet es sich auch für kleinere Datensätze?

Sheldonkreger
quelle
2
Möchten Sie auch über Toolkits für maschinelles Lernen wie z. B. FACTORIE informiert werden?
Erik Kaplun
Das klingt für meine Frage relevant, zögern Sie nicht, mehr zu teilen.
Sheldonkreger

Antworten:

11

Betreff: Größe der Daten

Die kurze Antwort

Scala funktioniert sowohl für kleine als auch für große Datenmengen. Die Erstellung und Entwicklung von Scala basiert jedoch auf der Notwendigkeit einer skalierbaren Lösung. Scala ist eine Abkürzung für "Scalable Language" .

Die lange Antwort

Scala ist eine funktionale Programmiersprache , die auf dem JVM ausgeführt wird . Der "funktionale" Teil davon ist ein grundlegender Unterschied in der Sprache, der Sie dazu bringt, anders über das Programmieren nachzudenken. Wenn Sie so denken, können Sie schnell mit kleinen Daten arbeiten. Ob es Ihnen gefällt oder nicht, funktionale Sprachen lassen sich wesentlich einfacher massiv skalieren. Das JVM-Stück ist auch wichtig, weil der JVM im Grunde überall ist und Scala-Code daher im Grunde überall ausgeführt werden kann. (Beachten Sie, dass es viele andere Sprachen auf dem JVM und viele andere funktionale Programmiersprachen gibt und Sprachen außerhalb von Scala in beiden Listen vorkommen.)

Dieser Vortrag gibt einen guten Überblick über die Motivation hinter Scala.

Betreff: Andere Tools mit guter Scala-Unterstützung:

Wie Sie bereits erwähnt haben, ist Spark (verteilbare Stapelverarbeitung mit besseren iterativen Algorithmen als sein Gegenstück) eine große Sache. Mit Spark kommen die Bibliotheken Mllib für maschinelles Lernen und GraphX für Diagramme. Wie von Erik Allik und Tris Nefzger erwähnt, existieren Akka und Factorie . Es gibt auch Spiel .

Im Allgemeinen kann ich nicht sagen, ob es einen bestimmten Anwendungsfall gibt, nach dem Sie suchen (wenn ja, machen Sie das zu einem Teil Ihrer Frage), oder Sie möchten einfach nur einen Überblick über Big-Data-Tools und wissen zufällig etwas über Scala und möchten um dort anzufangen.

TheGrimmScientist
quelle
4

Ausgehend von den Präsentationen von Martin Odersky, dem Erfinder von Scala, eignet es sich besonders zum Erstellen hochskalierbarer Systeme, indem funktionale Programmierkonstrukte in Verbindung mit Objektorientierung und flexibler Syntax eingesetzt werden. Es ist auch nützlich für die Entwicklung kleiner Systeme und das Rapid Prototyping, da weniger Codezeilen als in einigen anderen Sprachen erforderlich sind und ein interaktiver Modus für schnelles Feedback zur Verfügung steht. Ein bemerkenswertes Scala-Framework ist Akka, das das Akteurmodell der gleichzeitigen Berechnung verwendet. Viele von Oderskys Präsentationen sind auf YouTube zu sehen, und auf wiki.scala-lang.org finden Sie eine Liste der mit Scala implementierten Tools.

Ein impliziter Punkt ist, dass in Scala geschriebene Tools und Frameworks von Natur aus über eine Scala-Integration und normalerweise eine Scala-API verfügen. Dann können andere APIs hinzugefügt werden, um andere Sprachen zu unterstützen, die mit Java beginnen, da Scala bereits integriert ist und tatsächlich entscheidend von Java abhängt. Wenn ein Tool oder Framework nicht in Scala geschrieben ist, bietet es wahrscheinlich keine Unterstützung für Scala. Deshalb habe ich in Beantwortung Ihrer Frage auf Tools und Frameworks hingewiesen, die in Scala und Spark geschrieben wurden. Scala hat derzeit zwar einen geringen Marktanteil, die Akzeptanzrate steigt jedoch und die hohe Wachstumsrate von Spark wird dies noch verstärken. Der Grund, warum ich Scala verwende, ist, dass die Spark-API für Scala umfangreicher ist als die Java- und Python-APIs.

Die Hauptgründe, warum ich Scala im Allgemeinen bevorzuge, sind, dass es viel aussagekräftiger als Java ist, da es die Verwendung von Funktionen als Objekte und Werte ermöglicht und erleichtert, während die objektorientierte Modularität beibehalten wird, die die Entwicklung komplexer und korrekter Programme mit weitaus weniger Code ermöglicht als Java Ich hatte wegen der weit verbreiteten Verwendung, der Klarheit und der ausgezeichneten Dokumentation bevorzugt.

Tris Nefzger
quelle
1
Dies sind großartige Informationen zu Scala im Allgemeinen, aber ich suche nach Informationen zu bestimmten Data Science-Tools oder Frameworks mit Scala-Integration und warum Scala eine gute Sprache für diese Tools ist.
Sheldonkreger
0

Scala eignet sich sowohl für große als auch für kleine datenwissenschaftliche Anwendungen. Ziehen Sie DynaML in Betracht, wenn Sie eine maschinelle Lernbibliothek ausprobieren möchten, die sich gut in Apache Spark integriert. In Bezug auf die Anzahl der angebotenen Modelle steckt es noch in den Kinderschuhen, macht dies jedoch durch eine breite und flexible API für maschinelles Lernen wieder wett.

Um einen Blick auf einige Anwendungsbeispiele zu werfen, ziehen Sie in Betracht (mehr woher das kommt)

  1. Systemidentifikation - Abott Kraftwerk

Haftungsausschluss: Ich bin der Autor von DynaML

Mandar Chandorkar
quelle
Wenn dies Ihr Projekt ist, notieren Sie sich bitte Ihre Zugehörigkeit.
Sean Owen