มองแรกที่ iotools: การนำเข้าข้อมูล

การประมวลผลข้อมูลขนาดใหญ่ใน R

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

การประมวลผลแบบ chunk-wise

  1. โหลดข้อมูลเป็นส่วน ๆ
  2. แปลงเป็น native objects
  3. ประมวลผลและบันทึกผลลัพธ์

ทำซ้ำขั้นตอน 1 ถึง 3 จนกว่าจะประมวลผลข้อมูลครบ

การประมวลผลข้อมูลขนาดใหญ่ใน R

การนำเข้าข้อมูล

  • การโหลดข้อมูลมักใช้เวลานานกว่าการประมวลผล โดยแบ่งเป็น 2 ขั้นตอน
    • การดึงข้อมูลจากดิสก์เป็นการดำเนินการที่ค่อนข้างช้า
    • การแปลงข้อมูลดิบให้เป็น native R objects
การประมวลผลข้อมูลขนาดใหญ่ใน R

การนำเข้าข้อมูลด้วย iotools

ใน iotools การโหลดข้อมูลจากดิสก์และการแปลงข้อมูลดิบเป็น R objects ถูกแยกออกจากกัน เพื่อให้มีความยืดหยุ่นและประสิทธิภาพสูงขึ้น

การประมวลผลข้อมูลขนาดใหญ่ใน R

iotools: การนำเข้าข้อมูล

  • readAsRaw() อ่านข้อมูลทั้งหมดลงใน raw vector
  • read.chunk() อ่านข้อมูลเป็น chunk ลงใน raw vector
การประมวลผลข้อมูลขนาดใหญ่ใน R

iotools: การแปลงข้อมูล

  • mstrsplit() แปลงข้อมูลดิบเป็น matrix
  • dstrsplit() แปลงข้อมูลดิบเป็น data frame
การประมวลผลข้อมูลขนาดใหญ่ใน R

iotools: การโหลดและแปลงข้อมูล

read.delim.raw() = readAsRaw() + dstrsplit()

การประมวลผลข้อมูลขนาดใหญ่ใน R

การประมวลผลแบบ chunk-wise

  • ไม่จำเป็นต้องนำเข้าข้อมูลทั้งหมดพร้อมกัน
  • อ่านข้อมูลครั้งละ "chunk" จากแหล่งข้อมูล
  • ไม่มีโครงสร้างตัวกลาง
การประมวลผลข้อมูลขนาดใหญ่ใน R

การเชื่อมต่อไฟล์

# Open a file connection
fc <- file("data-file.csv", "rb")
# Read the first line if the data has a header
readLines(fc, n = 1)
....
# Code to import and parse the data
....
# Close the file connection
close(fc)
การประมวลผลข้อมูลขนาดใหญ่ใน R

มาฝึกกันเถอะ!

การประมวลผลข้อมูลขนาดใหญ่ใน R

Preparing Video For Download...