sparklyr-R语言访问Spark的另外一种方法
Spark自带了R语言的支持-SparkR,前面我也介绍了最简便的SparkR安装方法,这里我们换个方式,使用Rstudio提供的接口,sparklyr。 提供了完整的 dplyr后台实现 方便与Spark MLlib or H2O Sparkling Water整合 方便基于SPARK API编写自己的扩展 安装(记得安装Java虚拟机),
1 2 3 4 5 6 7 8 |
devtools::install_github("rstudio/sparklyr") #install.packages("sparklyr") #以上两种方法都可以 library(sparklyr) #选择spark和hadoop的版本 spark_install(version = "2.0.1",hadoop_version = "2.7") |
连接Spark
1 2 |
library(sparklyr) sc <- spark_connect(master = "local") |
读取数据
1 2 3 4 5 |
#install.packages(c("nycflights13", "Lahman")) library(dplyr) iris_tbl <- copy_to(sc, iris) flights_tbl <- copy_to(sc, nycflights13::flights, "flights") batting_tbl <- copy_to(sc, Lahman::Batting, "batting") |
列出所有的表
1 2 |
>src_tbls(sc) [1] "batting" "flights" "iris" |
使用dplyr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# filter by departure delay and print the first few records >flights_tbl %>% filter(dep_delay == 2) ## Source: query [?? x 19] ## Database: spark connection master=local[8] app=sparklyr local=TRUE ## ## year month day dep_time sched_dep_time dep_delay arr_time ## <int> <int> <int> <int> <int> <dbl> <int> ## 1 2013 1 1 517 515 2 830 ## 2 2013 1 1 542 540 2 923 ## 3 2013 1 1 702 700 2 1058 ## 4 2013 1 1 715 713 2 911 ## 5 2013 1 1 752 750 2 1025 ## 6 2013 1 1 917 915 2 1206 ## 7 2013 1 1 932 930 2 1219 ## 8 2013 1 1 1028 1026 2 1350 ## 9 2013 1 1 1042 1040 2 1325 ## 10 2013 1 1 1231 1229 2 1523 ## # ... with more rows, and 12 more variables: sched_arr_time <int>, ## # arr_delay <dbl>, carrier <chr>, flight <int>, tailnum <chr>, ## # origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>, hour <dbl>, ## # minute <dbl>, time_hour <dbl> |
画图 …