คำถามแรกที่แท้จริงคือเหตุใดผู้คนจึงมีประสิทธิผลในการใช้ DataFrame abstractions มากกว่า abstractions SQL ที่บริสุทธิ์
TLDR; SQL ไม่ได้มุ่งไปที่การพัฒนาและการดีบัก (มนุษย์) กระบวนการ DataFrames คือ
เหตุผลหลักคือ DataFrame abstractions อนุญาตให้คุณสร้างคำสั่ง SQL ในขณะที่หลีกเลี่ยงการซ้อนแบบละเอียดและไม่สามารถอ่านได้ รูปแบบของการเขียนรูทีนที่ซ้อนอยู่แสดงความคิดเห็นเพื่อตรวจสอบจากนั้นการยกเลิกการทำเครื่องหมายความคิดเห็นจะถูกแทนที่ด้วยการแปลงบรรทัดเดียว คุณสามารถรันสิ่งต่าง ๆ ทีละบรรทัดในแบบจำลอง (แม้ใน Spark) และดูผลลัพธ์
พิจารณาตัวอย่างของการเพิ่มการแปลงใหม่ (คอลัมน์ mangled สตริง) ลงในตารางจากนั้นจัดกลุ่มตามมันและทำการรวมบางอย่าง SQL นั้นค่อนข้างน่าเกลียด หมีแพนด้าสามารถแก้ปัญหานี้ได้ แต่หายไปบางสิ่งเมื่อพูดถึงข้อมูลขนาดใหญ่อย่างแท้จริงหรือในบางส่วนของพาร์ติชัน
DataFrames ควรถูกมองว่าเป็น API ระดับสูงถึงรูทีน SQL แม้ว่าจะมีนุ่นพวกมันก็ไม่ได้ถูกนำไปใช้ในการวางแผน SQL
-
คุณอาจมีการสนทนาทางเทคนิคมากมายเกี่ยวกับเรื่องนี้ แต่ฉันกำลังพิจารณามุมมองของผู้ใช้ด้านล่าง
เหตุผลง่ายๆข้อหนึ่งที่ทำให้คุณเห็นคำถามมากมายเกี่ยวกับการจัดการข้อมูลของ Pandas ซึ่งตรงข้ามกับ SQL คือการใช้ SQL ตามคำนิยามหมายถึงการใช้ฐานข้อมูลและกรณีการใช้งานจำนวนมากในทุกวันนี้ค่อนข้างต้องการบิตของข้อมูลสำหรับ ' งานที่ทำเสร็จแล้ว '(จาก. csv, web api ฯลฯ ) ในกรณีเหล่านี้การโหลดการจัดเก็บการจัดการและการแยกจากฐานข้อมูลจะไม่สามารถใช้งานได้
อย่างไรก็ตามเมื่อพิจารณาถึงกรณีที่การใช้งานตัวพิมพ์ใหญ่อาจแสดงให้เห็นถึงการใช้ Pandas หรือ SQL คุณก็ไม่ผิด หากคุณต้องการทำงานการจัดการข้อมูลซ้ำ ๆ จำนวนมากและคงเอาท์พุทเอาไว้ฉันขอแนะนำให้พยายามใช้ SQL เป็นอันดับแรกเสมอ จากสิ่งที่ฉันได้เห็นเหตุผลว่าทำไมผู้ใช้หลายคนถึงแม้ในกรณีเหล่านี้ไม่ได้ใช้ SQL เป็นสองเท่า
ประการแรกข้อได้เปรียบที่สำคัญของแพนด้ามีมากกว่า SQL คือมันเป็นส่วนหนึ่งของจักรวาล Python ที่กว้างขึ้นซึ่งหมายความว่าในคราวเดียวฉันสามารถโหลด, ทำความสะอาด, จัดการและแสดงภาพข้อมูลของฉัน (ฉันสามารถรัน SQL ผ่าน Pandas ... ) อีกอย่างก็คือผู้ใช้จำนวนมากเกินไปไม่รู้ความสามารถของ SQL ผู้เริ่มต้นทุกคนเรียนรู้ 'ไวยากรณ์การแยก' ของ SQL (SELECT, FROM, WHERE, ฯลฯ ) เป็นวิธีการรับข้อมูลของคุณจากฐานข้อมูลไปยังตำแหน่งถัดไป บางคนอาจเลือกกลุ่มการจัดกลุ่มล่วงหน้าและไวยากรณ์การทำซ้ำ แต่หลังจากนั้นก็มีแนวโน้มที่จะเป็นอ่าวที่มีความสำคัญพอสมควรจนกว่าคุณจะไปถึงผู้เชี่ยวชาญ (DBA, วิศวกรข้อมูล ฯลฯ )
tl; dr: บ่อยครั้งที่ผู้ใช้จะใช้งานได้สะดวกหรือมีช่องว่างในความรู้เกี่ยวกับขีดความสามารถของ SQL