Как преобразовать файл csv в собственный формат hadoop, чтобы я мог использовать его с пакетом plyrmr?конвертировать csv в родной формат hadoop
Этот вопрос связан с другим одним из моих постов:
How to read files in HDFS in R without loosing column and row names
У меня есть mtcars в формате CSV, но когда я прочитал его с помощью следующего кода он не работает:
filename3 <- "/user/sgerony/mtcars.csv" #file uploaded manually on to the HDFS
input(filename3) ## DOES NOT WORK
Когда я прочитал его со следующим кодом, он работает, но я теряю имена столбцов:
input(filename3,format=make.input.format(format = "csv", sep=",")) ## works
Результат:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
1 Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
2 Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
3 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
4 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Это уже странно, учитывая то, что plyrmr учебник на GitHub шоу.
Так что я был вдохновлен следующий код, который записывает mtcars в HDFS и читает его назад, чтобы увидеть, если имена столбцов сохраняются:
output(
bind.cols(
input(mtcars),
carb.per.cyl = carb/cyl),
path="/user/sgerony/mtcars0.out")
Результат:
mpg cyl disp hp drat wt qsec vs am gear carb carb.per.cyl
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 0.6666667
2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 0.6666667
3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 0.2500000
4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 0.1666667
Тогда:
x=output(
bind.cols(
input(mtcars),
carb.per.cyl = carb/cyl),
path="/user/sgerony/mtcars0.out")
get.format(x)
Результат:
"native"
Любые идеи?
Я знаю, и я сожалею, но это не главное.Мне было интересно, есть ли способ преобразовать csv в собственный формат, чтобы я мог хранить имена столбцов и не должен сильно менять свой код только для управления именами столбцов. Я до сих пор не знаю, почему я не могу получить тот же результат, что и учебник plyrmr. Вы? – Sam
Это мой лучший ответ извините. Избегайте csv для сохранения метаданных. – piccolbo