Dataframes เป็นคำที่แพร่หลายในอุตสาหกรรมปัจจุบัน ผู้คนมักจะใช้กับภาษายอดนิยมที่ใช้ในการวิเคราะห์ข้อมูลเช่น Python, Scala และ Rนอกจากนี้ด้วยความต้องการที่ชัดเจนในการจัดการการวิเคราะห์ที่ซับซ้อนและงานที่ซับซ้อนสำหรับ Big Data, Python for Spark หรือ ได้กลายเป็นหนึ่งในทักษะที่เป็นที่ต้องการมากที่สุดในอุตสาหกรรมปัจจุบันแล้วทำไมทุกคนถึงใช้มันกันมาก? มาทำความเข้าใจกับสิ่งนี้ด้วย PySpark Dataframe Tutorial บล็อก ในบล็อกนี้ฉันจะพูดถึงหัวข้อต่อไปนี้:
- Dataframes คืออะไร
- ทำไมเราต้องใช้ Dataframes?
- คุณสมบัติของ Dataframes
- PySpark Dataframe Sources
- การสร้าง Dataframe
- Pyspark Dataframes พร้อม FIFA World Cup & Superheroes Dataset
PySpark Dataframe Tutorial: Dataframes คืออะไร?
โดยทั่วไป Dataframes หมายถึงโครงสร้างข้อมูลซึ่งมีลักษณะเป็นตาราง มันแสดงถึงแถวซึ่งแต่ละส่วนประกอบด้วยข้อสังเกตจำนวนหนึ่ง แถวสามารถมีรูปแบบข้อมูลที่หลากหลาย ( ต่างกัน ) ในขณะที่คอลัมน์สามารถมีข้อมูลประเภทข้อมูลเดียวกันได้ ( เป็นเนื้อเดียวกัน ). โดยปกติแล้วเฟรมข้อมูลจะมีข้อมูลเมตาบางอย่างนอกเหนือจากข้อมูลเช่นชื่อคอลัมน์และแถว
เราสามารถพูดได้ว่า Dataframes ไม่ใช่อะไรเลยนอกจากโครงสร้างข้อมูล 2 มิติซึ่งคล้ายกับตาราง SQL หรือสเปรดชีต ตอนนี้เรามาดูบทช่วยสอน PySpark Dataframe และทำความเข้าใจว่าเหตุใดเราจึงต้องการ Pyspark Dataframe?
ทำไมเราต้องใช้ Dataframes?
1. การประมวลผลข้อมูลที่มีโครงสร้างและกึ่งโครงสร้าง
Dataframesได้รับการออกแบบมาเพื่อประมวลผลถึง ใหญ่ การรวบรวมข้อมูลที่มีโครงสร้างและกึ่งโครงสร้าง . การสังเกตใน Spark DataFrame ถูกจัดระเบียบภายใต้คอลัมน์ที่มีชื่อซึ่งช่วยให้ Apache Spark เข้าใจสคีมาของ DataFrame สิ่งนี้ช่วยให้ Spark ปรับแผนการดำเนินการให้เหมาะสมกับคำค้นหาเหล่านี้ นอกจากนี้ยังสามารถจัดการ เพตาไบต์ ของข้อมูล
2. ส ใบอนุญาตและ Dicing
กรอบข้อมูลกโดยปกติแล้ว PI จะสนับสนุนวิธีการที่ซับซ้อนสำหรับ หั่นและหั่น ข้อมูล. ซึ่งรวมถึงการดำเนินการn เช่น 'การเลือก' แถวคอลัมน์และเซลล์ตามชื่อหรือตามหมายเลขการกรองแถว ฯลฯ ข้อมูลทางสถิติมักจะยุ่งมากและมีค่าที่ขาดหายไปและไม่ถูกต้องและการละเมิดช่วง ดังนั้นคุณสมบัติที่สำคัญอย่างยิ่งของเฟรมข้อมูลคือการจัดการข้อมูลที่ขาดหายไปอย่างชัดเจน
3. แหล่งข้อมูล
DataFrame รองรับรูปแบบข้อมูลและแหล่งข้อมูลที่หลากหลายเราจะตรวจสอบสิ่งนี้ในภายหลังในบล็อกบทช่วยสอน Pyspark Dataframe พวกเขาสามารถรับข้อมูลจากแหล่งต่างๆ
4. รองรับหลายภาษา
มีการรองรับ API สำหรับภาษาต่างๆเช่น Python, R, Scala, Java,ซึ่งทำให้ง่ายต่อการใช้โดยผู้ที่มีพื้นฐานการเขียนโปรแกรมที่แตกต่างกัน
สมัครสมาชิกช่อง YouTube ของเราเพื่อรับการอัปเดตใหม่ .. !
คุณสมบัติของ Dataframes
- Dataframes คือ กระจาย ในธรรมชาติซึ่งทำให้ Fault Tolerant และโครงสร้างข้อมูลที่มีอยู่สูง
- ขี้เกียจประเมิน เป็นกลยุทธ์การประเมินผลซึ่งเก็บการประเมินนิพจน์ไว้จนกว่าจะต้องการค่า หลีกเลี่ยงการประเมินซ้ำ ๆ การประเมิน Lazy ใน Spark หมายความว่าการดำเนินการจะไม่เริ่มต้นจนกว่าการดำเนินการจะถูกกระตุ้น ใน Spark ภาพของการประเมินความขี้เกียจเกิดขึ้นเมื่อการเปลี่ยนแปลงของ Spark เกิดขึ้น
- Dataframes คือ ไม่เปลี่ยนรูป ในธรรมชาติ. โดยไม่เปลี่ยนรูปฉันหมายความว่ามันเป็นวัตถุที่มีสถานะ ไม่สามารถแก้ไขได้ หลังจากสร้างเสร็จแล้วแต่เราสามารถแปลงร่างได้ของมันค่าโดยใช้แน่นอนการเปลี่ยนแปลงเช่นใน RDD
PySpark Dataframe Sources
Dataframes ใน Pyspark สามารถสร้างได้หลายวิธี:
สามารถโหลดข้อมูลผ่านไฟล์ CSV, JSON, XML หรือไฟล์ Parquet นอกจากนี้ยังสามารถสร้างโดยใช้ไฟล์ RDD และผ่านฐานข้อมูลอื่น ๆ เช่น รัง หรือ คาสซานดรา เช่นกัน. นอกจากนี้ยังสามารถรับข้อมูลจาก HDFS หรือระบบไฟล์ภายในเครื่อง
การสร้าง Dataframe
มาดูบล็อกการสอน PySpark Dataframe และทำความเข้าใจวิธีสร้าง Dataframes กัน
เราจะสร้างอินสแตนซ์พนักงานและแผนก
จากการนำเข้า pyspark.sql * พนักงาน = แถว ('firstName', 'lastName', 'อีเมล', 'เงินเดือน') พนักงาน 1 = พนักงาน ('Basher', 'armbrust', 'bash@edureka.co', 100000) staff2 = พนักงาน ('Daniel', 'meng', 'daniel@stanford.edu', 120000) พนักงาน 3 = พนักงาน ('Muriel', ไม่มี, 'muriel@waterloo.edu', 140000) staff4 = พนักงาน ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) staff5 = พนักงาน (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) พิมพ์ (พนักงาน [0]) พิมพ์ (พนักงาน 3) แผนก 1 = แถว (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', ชื่อ =' DEV ')
ต่อไปเราจะสร้างอินสแตนซ์ DepartmentWithEmployees จาก Employee และ Departments
departmentWithEmployees1 = Row (แผนก = แผนก 1, พนักงาน = [พนักงาน 1, พนักงาน 2, พนักงาน 5]) departmentWithEmployees2 = แถว (แผนก = แผนก 2, พนักงาน = [พนักงาน 3, พนักงาน 4]) departmentWithEmployees3 = แถว (แผนก = แผนก 3, พนักงาน = [พนักงาน 1, พนักงาน 4, พนักงาน 3) ]) departmentWithEmployees4 = Row (แผนก = แผนก 4, พนักงาน = [พนักงาน 2, พนักงาน 3])
มาสร้าง Dataframe ของเราจากรายการแถวกัน
departmentWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentWithEmployees_Seq) display (dframe) dframe.show ()
Pyspark Dataframes ตัวอย่างที่ 1: ชุดข้อมูล FIFA World Cup
ที่นี่เราได้นำชุดข้อมูลผู้เล่นฟุตบอลโลก FIFA เราจะโหลดข้อมูลนี้ซึ่งอยู่ในรูปแบบ CSVเป็นdataframe จากนั้นเราจะเรียนรู้เกี่ยวกับการเปลี่ยนแปลงและการดำเนินการต่างๆที่สามารถทำได้บนดาต้าเฟรมนี้
การอ่านข้อมูลจากไฟล์ CSV
มาโหลดข้อมูลจากไฟล์ CSV กัน ที่นี่เราจะใช้ไฟล์ spark.read.csv วิธีการโหลดข้อมูลลงใน dataframe fifa_df วิธีการที่แท้จริงคือ spark.read.format [csv / json] .
fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()
Schema ของ Dataframe
หากต้องการดูสคีมาคือ โครงสร้างของดาต้าเฟรมเราจะใช้ไฟล์ printSchema วิธี. สิ่งนี้จะให้คอลัมน์ต่างๆในดาต้าเฟรมของเราพร้อมกับประเภทข้อมูลและเงื่อนไขที่เป็นโมฆะสำหรับคอลัมน์นั้น ๆ
fifa_df.printSchema ()
ชื่อคอลัมน์และจำนวน (แถวและคอลัมน์)
เมื่อเราต้องการดูชื่อและจำนวนแถวและคอลัมน์ของ Dataframe หนึ่ง ๆ เราใช้วิธีการต่อไปนี้
fifa_df.columns // Column Names fifa_df.count () // Row Count len (fifa_df.columns) // จำนวนคอลัมน์
37784 8
การอธิบายคอลัมน์เฉพาะ
หากเราต้องการดูข้อมูลสรุปของคอลัมน์ใดคอลัมน์หนึ่งของ Dataframe เราใช้ไฟล์ อธิบาย วิธี. วิธีนี้ให้ข้อมูลสรุปทางสถิติของคอลัมน์ที่กำหนดหากไม่ได้ระบุไว้จะให้ข้อมูลสรุปทางสถิติของดาต้าเฟรม
รูปแบบใน python คืออะไร
fifa_df.describe ('ชื่อโค้ช'). แสดง () fifa_df.describe ('ตำแหน่ง'). แสดง ()
การเลือกหลายคอลัมน์
หากเราต้องการเลือกคอลัมน์ใดคอลัมน์หนึ่งจากดาต้าเฟรมเราใช้ไฟล์ เลือก วิธี.
fifa_df.select ('ชื่อผู้เล่น', 'ชื่อโค้ช') แสดง ()
การเลือกหลายคอลัมน์ที่แตกต่างกัน
fifa_df.select ('ชื่อผู้เล่น', 'ชื่อโค้ช'). ชัดเจน (). แสดง ()
การกรองข้อมูล
ในการกรองข้อมูลตามเงื่อนไขที่ระบุเราใช้ไฟล์ กรอง คำสั่ง ที่นี่เรากำลังกรอง dataframe ของเราตามเงื่อนไขที่ Match ID ต้องเท่ากับ 1096 จากนั้นเรากำลังคำนวณจำนวนระเบียน / แถวในเอาต์พุตที่กรอง
fifa_df.filter (fifa_df.MatchID == '1096') แสดง () fifa_df.filter (fifa_df.MatchID == '1096') นับ () // เพื่อรับจำนวน
การกรองข้อมูล (หลายพารามิเตอร์)
เราสามารถกรองข้อมูลของเราตามเงื่อนไขต่างๆ (AND หรือ OR)
fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). แสดง ()
การเรียงลำดับข้อมูล (OrderBy)
ในการจัดเรียงข้อมูลเราใช้ไฟล์ สั่งโดย วิธี. โดยค่าเริ่มต้นจะเรียงลำดับจากน้อยไปมาก แต่เราสามารถเปลี่ยนเป็นลำดับจากมากไปหาน้อยได้เช่นกัน
fifa_df.orderBy (fifa_df.MatchID) .show ()
PySpark Dataframes ตัวอย่างที่ 2: Superheros Dataset
กำลังโหลดข้อมูล
ที่นี่เราจะโหลดข้อมูลในลักษณะเดียวกับที่เราทำก่อนหน้านี้
Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)
การกรองข้อมูล
Superhero_df.filter (Superhero_df.Gender == 'Male'). count () // Male Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female') count () // Female Heros Count
การจัดกลุ่มข้อมูล
GroupBy ใช้เพื่อจัดกลุ่มดาต้าเฟรมตามคอลัมน์ที่ระบุ ที่นี่เรากำลังจัดกลุ่มดาต้าเฟรมตามคอลัมน์ Race แล้วด้วย นับ เราสามารถค้นหาจำนวนของการแข่งขันนั้น ๆ ได้
Race_df = Superhero_df.groupby ('การแข่งขัน') .count () .show ()
ดำเนินการสืบค้น SQL
นอกจากนี้เรายังสามารถส่งคำสั่ง SQL ไปยังดาต้าเฟรมได้โดยตรงเพื่อที่เราจะต้องสร้างตารางจากดาต้าเฟรมโดยใช้ registerTempTable วิธีการแล้วใช้ sqlContext.sql () เพื่อส่งผ่านแบบสอบถาม SQL
Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('เลือก * จาก superhero_table') แสดง ()
sqlContext.sql ('เลือกเฉพาะ (Eye_color) จาก superhero_table') แสดง ()
sqlContext.sql ('เลือกที่แตกต่าง (Eye_color) จาก superhero_table') count ()
2. 3
sqlContext.sql ('เลือกสูงสุด (น้ำหนัก) จาก superhero_table') แสดง ()
และด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทแนะนำ PySpark Dataframe
นี่ไงพวกกู!
ฉันหวังว่าพวกคุณจะมีความคิดว่า PySpark Dataframe คืออะไรทำไมถึงถูกใช้ในอุตสาหกรรมและฟีเจอร์ต่างๆในบล็อกการสอน PySpark Dataframe นี้ ขอแสดงความยินดีคุณไม่ได้เป็นมือใหม่สำหรับ Dataframes อีกต่อไป หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ PySpark และทำความเข้าใจเกี่ยวกับกรณีการใช้งานในอุตสาหกรรมต่างๆโปรดดูที่ จุดประกายด้วย Python และ การสอน PySpark บล็อก