Problema
Cum pot solicita funcția RxTextData să utilizați ' |' ca delimitator sau alte caractere?
Soluție
Dacă datele text nu este separate prin virgule sau tabulatori, trebuie să specificați delimitator utilizând argumentul columnDelimiters. (Acest lucru nu este de fapt un argument rxImport, dar RxTextData bază de date sursă obiectului de.) În utilizarea normală, acest argument este un singur caracter, cum ar fi columnDelimiters = "\t" pentru date delimitat cu tabulatori sau columnDelimiters = "," pentru virgulă date. Cu toate acestea, poate fi delimitată fiecărei coloane un caracter diferit; toate delimitatori trebuie să fi concatenate împreună într-un șir de caractere unic. De exemplu, dacă aveți o coloană delimitată prin virgulă, un al doilea un semn plus și a treia printr-o linie nouă, ar trebui să utilizaţi columnDelimiters argument = ", + \n".
ID | val 1 | o 2 | b Astfel pentru datele de mai sus Cum remediez mai jos codul de luat în considerare ' |' ca delimeterhdfsFS <- 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). pentru a putea citi 'canaliza'-delimitat de date, trebuie să setați opțiunea ' delimiter = "|"' în apelul RxTextData():
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")