Alat Ilmu Data Menggunakan Scala

15

Saya tahu bahwa Spark sepenuhnya terintegrasi dengan Scala. Ini menggunakan case khusus untuk set data besar. Alat lain mana yang memiliki dukungan Scala yang bagus? Apakah Scala paling cocok untuk set data yang lebih besar? Atau apakah itu juga cocok untuk set data yang lebih kecil?

sheldonkreger
sumber
2
Apakah Anda juga ingin tahu tentang toolkit Pembelajaran Mesin seperti misalnya FACTORIE?
Erik Kaplun
Kedengarannya relevan dengan pertanyaan saya, jangan ragu untuk berbagi lebih banyak.
sheldonkreger

Jawaban:

11

Re: ukuran data

Jawaban singkatnya

Scala bekerja untuk data kecil dan besar, tetapi pembuatan dan pengembangannya dimotivasi oleh kebutuhan akan sesuatu yang dapat diskalakan. Scala adalah akronim untuk “Bahasa yang Dapat Dikembangkan” .

Jawaban panjangnya

Scala adalah bahasa pemrograman fungsional yang berjalan di jvm . Bagian 'fungsional' dari ini adalah perbedaan mendasar dalam bahasa yang membuat Anda berpikir berbeda tentang pemrograman. Jika Anda menyukai cara berpikir seperti itu, Anda dapat dengan cepat bekerja dengan data kecil. Apakah Anda suka atau tidak, bahasa fungsional pada dasarnya lebih mudah untuk skala besar-besaran. Sepotong jvm juga penting karena jvm pada dasarnya ada di mana-mana dan, dengan demikian, kode Scala dapat berjalan pada dasarnya di mana-mana. (Perhatikan ada banyak bahasa lain yang ditulis pada jvm dan banyak bahasa pemrograman fungsional lainnya , dan bahasa di luar Scala muncul di kedua daftar.)

Pembicaraan ini memberikan gambaran yang baik tentang motivasi di balik Scala.

Re: alat lain yang memiliki dukungan Scala yang baik:

Seperti yang Anda sebutkan, Spark (pemrosesan batch yang dapat didistribusikan lebih baik pada algoritma iteratatif daripada rekannya) adalah yang besar. Dengan Spark hadir pustaka Mllib untuk pembelajaran mesin dan GraphX untuk grafik. Seperti yang disebutkan oleh Erik Allik dan Tris Nefzger, Akka dan Factorie ada. Ada juga Play .

Secara umum, saya tidak tahu apakah ada kasus penggunaan khusus yang Anda gali (jika demikian, jadikan itu bagian dari pertanyaan Anda), atau hanya ingin survei alat data besar dan kebetulan tahu Scala sedikit dan ingin untuk memulai dari sana.

Ilmuwan TheGrimm
sumber
4

Dari mendengarkan presentasi oleh Martin Odersky, pencipta Scala, sangat cocok untuk membangun sistem yang sangat scalable dengan meningkatkan konstruksi pemrograman fungsional dalam hubungannya dengan orientasi objek dan sintaksis yang fleksibel. Ini juga berguna untuk pengembangan sistem kecil dan pembuatan prototipe cepat karena hanya membutuhkan lebih sedikit baris kode daripada beberapa bahasa lain dan memiliki mode interaktif untuk umpan balik cepat. Salah satu kerangka kerja Scala yang terkenal adalah Akka yang menggunakan model aktor perhitungan bersamaan. Banyak presentasi Odersky ada di YouTube dan ada daftar alat yang diimplementasikan dengan Scala di wiki.scala-lang.org.

Poin tersirat adalah bahwa alat dan kerangka kerja yang ditulis dalam Scala secara inheren memiliki integrasi Scala dan biasanya API Scala. Kemudian API lain dapat ditambahkan untuk mendukung bahasa lain yang dimulai dengan Java sejak Scala sudah terintegrasi dan sebenarnya sangat tergantung pada Java. Jika alat atau kerangka kerja tidak ditulis dalam Scala, kecil kemungkinannya ia menawarkan dukungan untuk Scala. Itulah sebabnya dalam menjawab pertanyaan Anda, saya telah menunjuk ke alat dan kerangka kerja yang ditulis dalam Scala dan Spark adalah salah satu contohnya. Namun, Scala saat ini memiliki pangsa pasar kecil tetapi tingkat adopsi tumbuh dan tingkat pertumbuhan Spark yang tinggi akan meningkatkan itu. Alasan saya menggunakan Scala adalah karena API Spark untuk Scala lebih kaya daripada API Java dan Python.

Alasan utama saya lebih suka Scala umumnya adalah karena jauh lebih ekspresif daripada Java karena memungkinkan dan memfasilitasi penggunaan fungsi sebagai objek dan nilai-nilai sambil mempertahankan modularitas berorientasi objek, yang memungkinkan pengembangan program yang kompleks dan benar dengan kode jauh lebih sedikit daripada Java yang Saya lebih suka karena penggunaan yang luas, kejelasan dan dokumentasi yang sangat baik.

Tris Nefzger
sumber
1
Ini adalah info hebat tentang Scala secara umum, tetapi saya sedang mencari informasi tentang alat atau kerangka kerja sains data spesifik yang memiliki integrasi Scala, dan mengapa Scala adalah bahasa yang baik untuk digunakan oleh alat tersebut.
sheldonkreger
0

Scala cocok untuk aplikasi sains data besar dan kecil. Pertimbangkan DynaML jika Anda tertarik untuk mencoba perpustakaan pembelajaran mesin yang terintegrasi dengan baik dengan Apache Spark. Masih dalam masa pertumbuhan sehingga untuk berbicara dalam hal jumlah model yang ditawarkan, tetapi itu membuatnya untuk itu dengan API pembelajaran mesin yang luas dan fleksibel.

Untuk melihat beberapa contoh kasus penggunaan pertimbangkan (lebih dari mana asalnya)

  1. Identifikasi Sistem - Pembangkit Listrik Abott

Penafian: Saya penulis DynaML

Mandar Chandorkar
sumber
Jika ini adalah proyek Anda, harap perhatikan afiliasi Anda.
Sean Owen