เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างคอลัมน์

ในบทนี้ คุณจะได้เรียนรู้วิธีใช้เมธอดที่ Spark กำหนดไว้ใน DataFrame class เพื่อดำเนินการกับข้อมูลในรูปแบบต่าง ๆ

มาเริ่มต้นด้วยการดำเนินการในระดับคอลัมน์กัน ใน Spark สามารถทำได้ผ่านเมธอด .withColumn() ซึ่งรับอาร์กิวเมนต์ 2 ตัว ได้แก่ ชื่อคอลัมน์ใหม่ในรูปแบบ string และคอลัมน์ใหม่นั้นเอง

คอลัมน์ใหม่ต้องเป็น object ของ Column class ซึ่งสร้างได้ง่าย ๆ ด้วยการดึงคอลัมน์จาก DataFrame โดยใช้ df.colName

การอัปเดต Spark DataFrame แตกต่างจากการทำงานกับ pandas เนื่องจาก Spark DataFrame เป็น immutable หมายความว่าไม่สามารถเปลี่ยนแปลงได้โดยตรง จึงไม่สามารถแก้ไขคอลัมน์ในที่เดิมได้

ดังนั้น เมธอดเหล่านี้จะ return DataFrame ใหม่เสมอ หากต้องการเขียนทับ DataFrame เดิม ต้องกำหนดค่าใหม่ให้กับตัวแปรเดิม ดังนี้

df = df.withColumn("newCol", df.oldCol + 1)

โค้ดด้านบนจะสร้าง DataFrame ที่มีคอลัมน์เดิมทั้งหมดของ df บวกกับคอลัมน์ใหม่ชื่อ newCol โดยแต่ละค่าใน newCol จะเท่ากับค่าที่ตรงกันใน oldCol บวก 1

หากต้องการเขียนทับคอลัมน์ที่มีอยู่แล้ว ให้ระบุชื่อคอลัมน์นั้นเป็นอาร์กิวเมนต์แรกได้เลย!

จำไว้ว่า SparkSession ชื่อ spark ถูกเตรียมไว้ใน workspace ของคุณแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

พื้นฐาน PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้เมธอด spark.table() พร้อมอาร์กิวเมนต์ "flights" เพื่อสร้าง DataFrame ที่บรรจุข้อมูลจากตาราง flights ใน .catalog แล้วบันทึกไว้ในตัวแปรชื่อ flights
  • แสดงข้อมูลส่วนหัวของ flights โดยใช้ flights.show() ตรวจสอบผลลัพธ์ที่ได้ โดยคอลัมน์ air_time จะเก็บระยะเวลาบินในหน่วยนาที
  • อัปเดต flights ให้มีคอลัมน์ใหม่ชื่อ duration_hrs ซึ่งเก็บระยะเวลาบินในหน่วยชั่วโมง (หาร air_time ด้วยจำนวนนาทีในหนึ่งชั่วโมง)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
แก้ไขและรันโค้ด