Data Science ไม่ได้หยุดอยู่แค่ Python หรือ R

Aekanun Thongtae
1 min readJul 28, 2020

--

วันนี้มี Tools ที่ใช้ทำ Data Science อย่างหลากหลาย รวมถึง Programming Language ที่มีการพูดถึงกันมากที่สุด คือ R และ Python. แต่ถ้าพูดถึง Spark Programming อาจจะยังไม่เป็นที่รู้จักมากนัก. บทความนี้จะนำเสนอแนวทางการเลือกใช้ Programming Language ให้เหมาะสมกับขนาดข้อมูล

แม้ว่าผมจะทำมาหากินกับเรื่อง Big Data มานาน แต่ก็ไม่ใช่ว่า ผมจะเชียร์ให้ใช้ Big Data Technology กับทุก Use Case. จากบทความก่อนหน้านี้ “ต้องใหญ่แค่ไหน …จึงจะเรียกว่า Big Data” ผมได้อธิบายให้เข้าใจว่า เมื่อใดที่การใช้ Big Data Tech. จะมีประสิทธิภาพดีกว่าการใช้เทคโนโลยีดั้งเดิม. สำหรับในบทความนี้คือบทพิสูจน์แนวคิดจากบทความที่ผ่านมาดังกล่าว.

รูปที่ 1 กราฟเปรียบเทียบเวลาในการประมวลผลเพื่อสร้าง Machine Learning Model ด้วย Pyspark, Python และ R Programming

จากรูปที่ 1 กราฟเปรียบเทียบเวลาในการประมวลผลเพื่อสร้าง Machine Learning Model ด้วย Pyspark, Python และ R Programming ที่มีการใช้ข้อมูลและอัลกอริทึมเดียวกัน แต่เวลาที่ใช้ประมวลผลต่างกัน. ท่านจะเห็นได้ว่า Pyspark ซึ่งเป็น Programming Language ใช้เวลาประมวลผลนานกว่า Python และ R ในช่วงเริ่มต้นที่ขนาดข้อมูลประมาณ 100,000 -500,000 เรคคอร์ด แต่หลังจากนั้น Python และ R ใช้เวลาประมวลผลนานกว่า Pyspark อยู่มาก และยังคงมีแนวโน้มเป็น Linear แตกต่างจาก Pyspark ที่เส้นกราฟมีแนวโน้มเป็น Constant ดังนั้น Data Scientist จึงมีทางเลือกมากขึ้น

นั่นหมายความว่า หากท่านเขียน Python เป็นแล้ว ก็ไม่ใช่เรื่องยากอะไรเลยที่จะมาต่อยอดจนถึง Pyspark ทำเพื่อ Big Data Analytics ได้จริงๆ นอกจากนี้ ท่านสามารถ Run ทั้ง Python และ Pyspark บน Notebook เดียวกันได้เลยอีกด้วย

Spark เป็น Big Data Technology ที่มีสถาปัตยกรรมระบบในแบบ Multi-Nodes Cluster หรือ Single Node เหมาะสำหรับการประมวลผลข้อมูลขนาดใหญ่ในแบบ Distributed Processing. Spark สามารถอ่านข้อมูลจาก Storage ที่หลากหลาย เช่น CSV Files, RDBMS, NoSQL, HDFS เพื่อทำ Batch Analytics หรือแม้กระทั่งการ Subscribe กับ Kafka เพื่อดึงข้อมูลมาประมวลผลแบบ Stream Data Analytics เป็นต้น.

และที่น่าสนใจมากๆ คือ ฟรี ไม่เสียค่า Software License และ Spark เป็น Big Data Tech. ที่ทำงาน บน Linux ได้อย่างมีประสิทธิภาพโดยไม่ต้องมี Hadoop เลยก็ได้!

สุดท้ายของบทความนี้ ผมอยากจะแนะนำแหล่งข้อมูลต่างๆ ที่จะช่วยให้ผู้เริ่มต้นสามารถพัฒนาโค้ด Pyspark เพื่อทำ Machine Learning ได้อย่างรวดเร็ว ท่านสามารถเลือกทำตามข้อ [1] หรือ [2] แล้วมาต่อด้วย [3] ได้เลยครับ

[1] กรณีใช้งานบน Google Cloud Platform

[2] กรณีใช้งานบน AWS

[3] ตัวอย่างโค้ด Pyspark ตั้งแต่การดาวน์โหลดข้อมูลมาทดลองทำ การทำ Data Preparation การสร้าง Machine Learning Model และการประเมิน Model

--

--

Aekanun Thongtae

Experienced Senior Big Data & Data Science Consultant with a history of working in many enterprises and various domains . Skilled in Apache Spark, and Hadoop.