ฉันมีไฟล์ csv ขนาดใหญ่ (4,5 GB) .. ฉันต้องทำการตัดและวางขั้นพื้นฐาน แทนที่การดำเนินการสำหรับบางคอลัมน์ .. ข้อมูลได้รับการจัดระเบียบค่อนข้างดี .. ปัญหาเดียวคือฉันไม่สามารถเล่นกับมันด้วย Excel ได้เพราะ ของขนาด (2,000 แถว, 550,000 คอลัมน์)
นี่คือข้อมูลบางส่วน:
ID,Affection,Sex,DRB1_1,DRB1_2,SENum,SEStatus,AntiCCP,RFUW,rs3094315,rs12562034,rs3934834,rs9442372,rs3737728
D0024949,0,F,0101,0401,SS,yes,?,?,A_A,A_A,G_G,G_G
D0024302,0,F,0101,7,SN,yes,?,?,A_A,G_G,A_G,?_?
D0023151,0,F,0101,11,SN,yes,?,?,A_A,G_G,G_G,G_G
ฉันต้องลบคอลัมน์ที่ 4, 5, 6, 7, 8 และ 9 ฉันจำเป็นต้องค้นหาอักขระ _ ทุกตัวตั้งแต่คอลัมน์ 10 เป็นต้นไปและแทนที่ด้วยอักขระเว้นวรรค ( ) ฉันต้องเปลี่ยนทุก ๆ ? ด้วยศูนย์ (0); ฉันต้องแทนที่ลูกน้ำทุกตัวด้วยแท็บ ฉันต้องลบแถวแรก (ที่มีชื่อคอลัมน์ ฉันต้องแทนที่ทุกๆ 0 ด้วย 1, ทุก ๆ 1 ด้วย 2 และทุกๆ ? ด้วย 0 ในคอลัมน์ที่ 2; ฉันต้องแทนที่ F ด้วย 2, M ด้วย 1 และ ? ด้วย 0 ใน คอลัมน์ที่ 3;
ดังนั้นในไฟล์ผลลัพธ์เอาต์พุตจะอ่านว่า:
D0024949 1 2 A A A A G G G G
D0024302 1 2 A A G G A G 0 0
D0023151 1 2 A A G G G G G G
(ทั้งอินพุตและเอาต์พุตควรอ่านหนึ่งบรรทัดต่อแถว ไม่มีแถวว่างเพิ่มเติม) มีวิธีหน่วยความจำที่มีประสิทธิภาพในการทำเช่นนั้นด้วย java (และฉันต้องการรหัสในการทำเช่นนั้น) หรือเครื่องมือที่ใช้งานได้สำหรับเล่นกับข้อมูลขนาดใหญ่นี้หรือไม่ ฉันสามารถใช้ฟังก์ชัน Excel ได้อย่างง่ายดาย..