Masalah
Bagaimana cara mengetahui fungsi RxTextData menggunakan ' |' sebagai pembatas atau karakter lain?
Solusi
Jika data teks tidak dipisahkan oleh koma atau tab, Anda harus menentukan pembatas menggunakan argumen columnDelimiters. (Ini adalah tidak benar-benar argumen rxImport, tetapi untuk RxTextData dasar objek sumber data.) Pada penggunaan biasa, argumen ini adalah satu karakter, seperti columnDelimiters = "\t" untuk columnDelimiters atau terbatas tab data = "," koma data. Namun, setiap kolom mungkin dibatasi dengan karakter yang berbeda; Semua pembatas harus menggabungkan bersama ke rangkaian karakter tunggal. Sebagai contoh, jika Anda memiliki satu kolom yang dibatasi dengan tanda koma, kedua dengan tanda plus, ketiga dengan baris baru, Anda akan menggunakan argumen columnDelimiters = ", + \n".
id | val
1 |
2 | b
Jadi untuk data di atas bagaimana cara memperbaiki kode untuk mempertimbangkan di bawah ' |' sebagai 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). untuk dapat membaca 'pipa'-data yang terbatas, Anda akan perlu untuk mengatur opsi ' pembatas = "|"' di panggilan RxTextData() Anda:
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")