8.5 大数据相关R包

其它R包,如bigrquery

8.5.1 sparklyr

sparkly包可以连接[spark]17(http://spark.apache.org/),并且支持dplyr包方法。详情情况sparklyr介绍

spark 依赖java环境,需要系统上安装java方可使用。

1.R 包安装

# cran 版
install.packages("sparklyr")

# 开发版
devtools::install_github("rstudio/sparklyr")

2.连接到 spark

连接之前需要安装 java 环境以及通过sparklyr::spark_install()安装 spark。

java下载,下载安装后配置java环境变量。

# Win10
JAVA_HOME = C:\Program Files\Java\jre1.8.0_291

检查环境变量,在R中执行

Sys.getenv('JAVA_HOME')
>>  "C:\\Program Files\\Java\\jre1.8.0_291"
library(sparklyr)
sc <- spark_connect(master = "local")

3.使用 dplyr

library(dplyr)
iris_tbl <- copy_to(sc, iris)
flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
batting_tbl <- copy_to(sc, Lahman::Batting, "batting")
dplyr::src_tbls(sc)

filter实列:

flights_tbl %>% filter(dep_delay == 2)

sparkrly同样兼容DBI,支持SQL语句查询,更多详情请官网查阅。

8.5.2 RClickhouse

ClickHouse 是面向列的数据库管理系统(DBMS),用于对查询进行连接分析处理(OLAP)。

按照官网安装教程安装。

1.R 包安装

install.packages("RClickhouse")

2.配置远程连接

参考资料

3.安装驱动

安装ODBC驱动是为了和Power BI,tableau,Excel等工具连接。

驱动下载

4.连接

library(RClickhouse)
library(DBI)

# 本地默认连接
con_local <- dbConnect(RClickhouse::clickhouse(), host="localhost", port=9000L, user="default", password="")
dbExecute(con_local,"CREATE DATABASE IF NOT EXISTS tutorial")

# 指定库远程连接
con_remote <- dbConnect(RClickhouse::clickhouse(), host="192.168.2.237", port=9000L, user="default", password="",dbname='tutorial')

win系统上配置odbc时,注意ODBC版本,clickhouse-odbc下载。最初我使用的odbc版本太旧,Excel无法成功连接clickhouse数据库。

我用tableau实时连接clickhouse数据库,测试速度完爆 MS SQL Server,测试的数据量大概在2000万行,6G左右。 我用Excel通过odbc驱动连接,数据据提取速度特别慢(相比MS SQL Server)。不知道是不是因为 Exce l 和MS SQL Server 都是微软自家产品。另外表中的时间字段和 MS SQL Server 不一样,不能直接上传。

整体测试下来,建议持续保持观望,有机会就测试先试用着。毕竟在OLAP方面确实有一定优势,并且数据库支持中文,但是表头目前还未支持中文。


  1. Apache Spark 是用于大规模数据处理的统一分析引擎。↩︎