Sparklyr中的单热编码功能输出

时间:2017-07-05 13:57:15

标签: r apache-spark dplyr sparklyr one-hot-encoding

我很好奇R中ft_one_hot_encoder中的sparklyr函数的输出。我试图在使用{{1}之前实现它以找到我无法使用的输出相反。

我有一些简单的测试数据和一个有效的火花连接:

ml_create_dummy_variables

然后我可以复制数据并应用require(dplyr) require(sparklyr) spark_connection<-spark_connect(master = 'yarn-client' oneHotTest<-data.frame(a=c(1,2,1,3), b=rnorm(4)) > oneHotTest a b 1 1 2.2221345 2 2 0.2010831 3 1 0.5932860 4 3 0.7223811 ft_one_hot_encoder函数:

ml_create_dummy_variables

结果如下,oneHotTable<-copy_to(spark_connection, oneHotTest) oneHotEncode<-ft_one_hot_encoder(oneHotTable, input.col = 'a', output.col = 'output') oneHotDummy<-ml_create_dummy_variables(oneHotTable, 'a') 给出了我想要的输出:

ml_create dummy variables

> oneHotDummy Source: table<sparklyr_tmp_211f7b4485f4> [?? x 5] Database: spark_connection a b a_1 a_2 a_3 <chr> <dbl> <dbl> <dbl> <dbl> 1 1 -0.1524646 1 0 0 2 2 -0.5914959 0 1 0 3 1 -0.9588067 1 0 0 4 3 -1.5186872 0 0 1 在哪里为我提供了ft_one_hot_encoder的输出列,我无法使用:

NULL

我实现此功能的方式是否存在问题,或者我只是访问错误的信息?我也试过从火花中读取数据无济于事。

1 个答案:

答案 0 :(得分:1)

在sparklyr 0.6.0中你可以使用这个

x <- sdf_separate_column(oneHotDummy, column = 'output', into='new')