ปัญหา
ฉันกำหนดฟังก์ชัน RxTextData จะใช้ ' |' เป็นตัวคั่นหรืออักขระอื่น ๆ ได้อย่างไร
โซลูชัน
ถ้าไม่มีแบ่งข้อมูลของข้อความ ด้วยเครื่องหมายจุลภาคหรือแท็บ คุณต้องระบุตัวคั่นที่ใช้เป็นอาร์กิวเมนต์ columnDelimiters (นี่ไม่ได้จริง ๆ อาร์กิวเมนต์ rxImport แต่วัตถุแหล่งข้อมูล RxTextData ต้นแบบ) ในการใช้งานปกติ อาร์กิวเมนต์นี้เป็นอักขระเดี่ยว เช่น columnDelimiters = "\t" สำหรับข้อมูลที่คั่นด้วยแท็บหรือ columnDelimiters = สำหรับข้อมูลที่คั่นด้วยจุลภาค อย่างไรก็ตาม แต่ละคอลัมน์อาจถูกคั่น ด้วยอักขระอื่น ตัวคั่นต้องเชื่อมโยงเข้าด้วยกันเป็นสายอักขระเดี่ยว ตัวอย่างเช่น ถ้าคุณมีคอลัมน์หนึ่งคอลัมน์ที่คั่น ด้วยเครื่องหมายจุลภาค หนึ่งวินาที โดยเครื่องหมายบวก และที่สาม โดยบรรทัดใหม่ คุณจะต้องใช้ columnDelimiters อาร์กิวเมนต์ = ", + \n "
id | val
1 | การ
2 | b
ดังนั้นสำหรับข้อมูลข้างต้น แก้ไขด้านล่างรหัสเพื่อพิจารณา ' |' เป็น delimeter
hdfsFS <- RxHdfsFileSystem(hostName=”dummy ", port="dummy") txtSource <- RxTextData("directory value/ file_name in hdfs", fileSystem=hdfsFS)
airData <- rxImport(inData=txtSource, outFile = "/tmp/test.xdf",stringsAsFactors = TRUE, missingValueString = "M", rowsPerRead = 200000, overwrite=TRUE)
rxSummary(~ id+val, data = airData)
2) เพื่อให้สามารถอ่าน 'ส่ง' -ข้อมูลที่มีตัวคั่น คุณจะต้องตั้งค่าตัวเลือก ' ตัวคั่น = " | "' ในการเรียก RxTextData() ของคุณ:
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")