ฉันรู้ว่า Spark ได้รวมเข้ากับ Scala อย่างสมบูรณ์ มันใช้กรณีเป็นเฉพาะสำหรับชุดข้อมูลขนาดใหญ่ เครื่องมืออื่นใดที่รองรับสกาลาได้ดี Scala เหมาะสมที่สุดสำหรับชุดข้อมูลขนาดใหญ่กว่านี้หรือไม่? หรือมันยังเหมาะกับชุดข้อมูลที่มีขนาดเล็กลงหรือไม่?
ฉันรู้ว่า Spark ได้รวมเข้ากับ Scala อย่างสมบูรณ์ มันใช้กรณีเป็นเฉพาะสำหรับชุดข้อมูลขนาดใหญ่ เครื่องมืออื่นใดที่รองรับสกาลาได้ดี Scala เหมาะสมที่สุดสำหรับชุดข้อมูลขนาดใหญ่กว่านี้หรือไม่? หรือมันยังเหมาะกับชุดข้อมูลที่มีขนาดเล็กลงหรือไม่?
คำตอบ:
Scala ทำงานได้ทั้งข้อมูลขนาดเล็กและขนาดใหญ่ แต่การสร้างและการพัฒนานั้นมีแรงจูงใจโดยต้องการบางสิ่งบางอย่างที่ปรับขนาดได้ สกาล่าเป็นตัวย่อสำหรับ“Scalable ภาษา”
Scala เป็นภาษาเขียนโปรแกรมการทำงานที่รันบนJVM ส่วน 'การทำงาน' ของสิ่งนี้คือความแตกต่างพื้นฐานในภาษาที่ทำให้คุณคิดต่างไปจากการเขียนโปรแกรม หากคุณชอบวิธีคิดแบบนี้มันจะช่วยให้คุณทำงานกับข้อมูลขนาดเล็กได้อย่างรวดเร็ว ไม่ว่าคุณจะชอบหรือไม่ก็ตามภาษาที่ใช้ในการทำงานนั้นง่ายต่อการปรับขนาดให้ใหญ่ขึ้น ชิ้นส่วน jvm ก็มีความสำคัญเช่นกันเพราะ jvm นั้นมีอยู่ทั่วไปและดังนั้นโค้ดของ Scala สามารถทำงานได้ทุกที่ (หมายเหตุมีภาษาอื่นอีกมากมายที่เขียนบน jvmและภาษาการเขียนโปรแกรมเชิงฟังก์ชันอื่น ๆ มากมายและภาษาที่อยู่นอกเหนือจาก Scala จะปรากฏในรายการทั้งสอง)
การพูดคุยนี้ให้ภาพรวมที่ดีของแรงจูงใจเบื้องหลังสกาลา
ดังที่คุณกล่าวถึง Spark (การประมวลผลแบทช์แบบกระจายได้ดีกว่าในอัลกอริธึมการวนซ้ำมากกว่ารุ่นเดียวกัน) เป็นวิธีที่ใหญ่ ด้วย Spark มาพร้อมกับห้องสมุดMllibสำหรับการเรียนรู้ของเครื่องและGraphXสำหรับกราฟ ตามที่ Erik Allik และ Tris Nefzger พูดถึงAkkaและFactorieมีอยู่จริง นอกจากนี้ยังมีการเล่น
โดยทั่วไปฉันไม่สามารถบอกได้ว่ามีกรณีการใช้งานเฉพาะที่คุณกำลังขุดหา (ถ้าเป็นเช่นนั้นทำให้เป็นส่วนหนึ่งของคำถามของคุณ) หรือเพียงแค่ต้องการสำรวจเครื่องมือข้อมูลขนาดใหญ่และรู้ Scala สักหน่อยและต้องการ เพื่อเริ่มต้นที่นั่น
ScalaNLP เป็นชุดของการเรียนรู้ของเครื่องและไลบรารีการคำนวณเชิงตัวเลขที่รองรับงานประมวลผลภาษาธรรมชาติทั่วไป http://www.scalanlp.org/
นี่คือรายการที่อัปเดตใหม่ของห้องสมุดสกาล่าสำหรับวิทยาศาสตร์ข้อมูล: https://www.datasciencecentral.com/profiles/blogs/top-15-scala-lไลบรารี-for-data-science-in- 2018-1
จากการฟังการนำเสนอโดย Martin Odersky ผู้สร้าง Scala มันเหมาะอย่างยิ่งสำหรับการสร้างระบบที่ปรับขนาดได้สูงโดยใช้ประโยชน์จากการเขียนโปรแกรมฟังก์ชั่นการสร้างในการประกอบกับการวางแนววัตถุและไวยากรณ์ flelxible นอกจากนี้ยังมีประโยชน์สำหรับการพัฒนาระบบขนาดเล็กและการสร้างต้นแบบอย่างรวดเร็วเนื่องจากใช้โค้ดน้อยกว่าภาษาอื่น ๆ และมีโหมดโต้ตอบสำหรับการป้อนกลับอย่างรวดเร็ว หนึ่งในกรอบสกาล่าที่โดดเด่นคือ Akka ซึ่งใช้รูปแบบนักแสดงของการคำนวณพร้อมกัน การนำเสนอของ Odersky จำนวนมากอยู่บน YouTube และมีรายการเครื่องมือที่ใช้กับ Scala ใน wiki.scala-lang.org
จุดโดยนัยก็คือเครื่องมือและกรอบงานที่เขียนใน Scala โดยเนื้อแท้มีการรวมสกาล่าและมักจะเป็น Scala API ดังนั้นอาจมีการเพิ่ม API อื่น ๆ เพื่อสนับสนุนภาษาอื่น ๆ ที่เริ่มต้นด้วย Java เนื่องจาก Scala ได้รวมอยู่แล้วและในความเป็นจริงแล้วขึ้นอยู่กับ Java หากเครื่องมือหรือกรอบงานไม่ได้ถูกเขียนใน Scala มันไม่น่าเป็นไปได้ที่จะให้การสนับสนุนสำหรับ Scala นั่นคือเหตุผลที่ตอบคำถามของคุณฉันได้ชี้ไปที่เครื่องมือและกรอบงานเขียนใน Scala และ Spark เป็นตัวอย่างหนึ่ง อย่างไรก็ตามในปัจจุบันสกาล่ามีส่วนแบ่งตลาดเล็กน้อย แต่อัตราการยอมรับของมันก็เพิ่มขึ้นและอัตราการเติบโตที่สูงของสปาจะช่วยเสริม เหตุผลที่ฉันใช้ Scala เป็นเพราะ API ของ Spark สำหรับ Scala นั้นสมบูรณ์กว่า Java และ Python APIs
เหตุผลหลักที่ฉันชอบ Scala โดยทั่วไปก็เพราะมันแสดงออกได้ดีกว่า Java เพราะมันช่วยและอำนวยความสะดวกในการใช้ฟังก์ชั่นเป็นวัตถุและค่าในขณะที่ยังคงรักษา modularity เชิงวัตถุซึ่งช่วยให้การพัฒนาโปรแกรมที่ซับซ้อนและถูกต้อง ฉันได้รับความนิยมเนื่องจากมีการใช้อย่างแพร่หลายความชัดเจนและเอกสารที่ยอดเยี่ยม
Scala เหมาะสำหรับการใช้งานด้านวิทยาศาสตร์ข้อมูลขนาดใหญ่และขนาดเล็ก พิจารณา DynaMLหากคุณสนใจที่จะลองใช้ไลบรารี่การเรียนรู้ของเครื่องซึ่งสามารถใช้งานร่วมกับ Apache Spark ได้ดี มันยังอยู่ในช่วงเริ่มต้นดังนั้นจะพูดในแง่ของจำนวนรุ่นที่มีให้ แต่มันทำขึ้นโดย API การเรียนรู้เครื่องจักรที่กว้างและยืดหยุ่น
หากต้องการดูตัวอย่างกรณีการใช้งานให้พิจารณา (เพิ่มเติมจากที่มา)
ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน DynaML