Problème
Comment pour déterminer la fonction RxTextData à utiliser le « | » en tant que délimiteur ou tout autre caractère ?
Solution
Si vos données de texte ne sont pas séparées par des virgules ou des tabulations, vous devez spécifier le délimiteur à l’aide de l’argument columnDelimiters. (Cela n’est pas réellement un argument à rxImport, mais à l’objet de source de données RxTextData sous-jacente.) En utilisation normale, cet argument est un caractère unique, par exemple columnDelimiters = « \t » pour les données de tabulations ou de columnDelimiters = «, » CSV des données. Toutefois, chaque colonne peut-être être délimitée par un caractère différent ; tous les séparateurs doivent être concaténés ensemble dans une chaîne de caractères unique. Par exemple, si vous avez une colonne délimitée par une virgule, et le second par un signe plus et un troisième sur une ligne distincte, vous devez utiliser l’argument columnDelimiters = », + \n ».
ID | val
1 | un
2 | b
Pour les données ci-dessus comment corriger la sous code à prendre en compte ' |' comme le séparateur
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). pour être en mesure de lire 'pipe'-données délimité, vous devez définir l’option ' délimiteur = "|"' dans l’appel de RxTextData() :
txtSource <- RxTextData(("directory value/ file_name in hdfs", fileSystem=hdfsFS, delimiter = "|")