Problem
Jak sprawdzić funkcję RxTextData do użycia ' |' jako ogranicznik lub inny znak?
Rozwiązanie
Jeśli dane tekstowe nie są oddzielane przecinkami lub tabulatorami, należy określić ogranicznik za pomocą argumentu columnDelimiters. (To nie jest faktycznie argument rxImport, ale podstawowym obiektu źródła danych RxTextData.) W normalnych warunkach użytkowania, ten argument jest pojedynczy znak, na przykład columnDelimiters = "\t" dla danych rozdzielanego tabulatorami lub columnDelimiters = "," Aby uzyskać dane rozdzielane przecinkami. Jednakże każda kolumna może być rozdzielone inny znak; wszystkie ograniczniki musi być łączone na ciąg znaków pojedynczego. Na przykład, jeśli masz jedną kolumnę tekstu rozdzielanego przecinkami, drugi znak plus, a trzecim znak nowego wiersza, należy użyć argumentu columnDelimiters = ", + \n".
Identyfikator | val
1 |
2 | b
Dlatego dla powyższych danych jak naprawić poniżej kod, aby wziąć pod uwagę ' |' jako oddzielający
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). Aby móc czytać "potoku"-dane rozdzielane, należy ustawić opcję "ogranicznik =" | "" w wywołaniu RxTextData():
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")