Probleem
Hoe zien de functie RxTextData de ' |' als scheidingsteken of een ander teken?
Oplossing
Als uw gegevens niet door komma's of tabs is gescheiden, moet u het argument columnDelimiters gebruikt als scheidingsteken. (Dit is niet echt een argument rxImport, maar de onderliggende RxTextData gegevensbronobject.) In normaal gebruik, is dit argument een teken, bijvoorbeeld columnDelimiters = "\t" voor een door tabs gescheiden gegevens of columnDelimiters = "," voor door komma's gescheiden gegevens. Elke kolom kan echter worden gescheiden door een ander teken; alle scheidingstekens moeten worden samengevoegd in een enkele tekenreeks. Bijvoorbeeld, als u één kolom, gescheiden door een komma, een tweede door een plusteken (+) en een derde door een nieuwe regel, gebruikt u het argument columnDelimiters = ", + \n".
ID | val
1 | een
2 | b
Dus voor de bovenstaande gegevens hoe herstel ik de onderstaande code rekening te houden met ' |' als de 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). om te kunnen lezen van de pipe'-gescheiden gegevens, moet u de optie ' scheidingsteken = "|"' in de aanroep van RxTextData():
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")