使用 sparklyr 包访问配置单元?
Access hive using sparklyr package?
library(sparklyr)
library(dplyr)
home <- "/usr/hdp/current/spark-client"
sc <- spark_connect(master = "yarn-client", spark_home = home, version = "1.6.2")
readFromSpark <- spark_read_csv(sc, name="test", path ="hdfs://hostname/user/test.csv",header=TRUE)
我已经使用 sparklyr 成功访问 hdfs
。但是如何使用 sparklyr
访问配置单元 table/command 因为我需要将这个 df
存储到配置单元中。
据我所知,sparklyr 没有直接创建 database/table 的功能。但是你可以使用 DBI
创建 database/table.
library(DBI)
iris_preview <- dbExecute(sc, "CREATE EXTERNAL TABLE...")
你可以试试spark_write_table:
spark_write_table(readFromSpark,
'<database_name>.readFromSpark', mode = 'overwrite')
如果您还要创建架构,则可以使用 DBI 包:
dbSendQuery(sc,"CREATE SCHEMA IF NOT EXISTS xyz")
tbl_change_db(sc,"xyz")
我是这样实现的:
设置:
cc <- RxSpark(nameNode = hdfs_host(myADL))
rxSetComputeContext(cc)
myXDFname <- 'something'
hivTbl <- RxHiveData(table = myXDFname)
sc <- spark_connect('yarn-client')
tbl_cache(sc, myXDFname)
mytbl <- tbl(sc, myXDFname)
现在用它做点什么
mytbl %>% head
mytbl %>%
filter(rlike(<txt col>, pattern)) %>%
group_by(something) %>%
tally() %>%
collect() %>% #this is important
ggplot(., aes(...)) %>%
geom_triforce(...)
library(sparklyr)
library(dplyr)
home <- "/usr/hdp/current/spark-client"
sc <- spark_connect(master = "yarn-client", spark_home = home, version = "1.6.2")
readFromSpark <- spark_read_csv(sc, name="test", path ="hdfs://hostname/user/test.csv",header=TRUE)
我已经使用 sparklyr 成功访问 hdfs
。但是如何使用 sparklyr
访问配置单元 table/command 因为我需要将这个 df
存储到配置单元中。
据我所知,sparklyr 没有直接创建 database/table 的功能。但是你可以使用 DBI
创建 database/table.
library(DBI)
iris_preview <- dbExecute(sc, "CREATE EXTERNAL TABLE...")
你可以试试spark_write_table:
spark_write_table(readFromSpark,
'<database_name>.readFromSpark', mode = 'overwrite')
如果您还要创建架构,则可以使用 DBI 包:
dbSendQuery(sc,"CREATE SCHEMA IF NOT EXISTS xyz")
tbl_change_db(sc,"xyz")
我是这样实现的:
设置:
cc <- RxSpark(nameNode = hdfs_host(myADL))
rxSetComputeContext(cc)
myXDFname <- 'something'
hivTbl <- RxHiveData(table = myXDFname)
sc <- spark_connect('yarn-client')
tbl_cache(sc, myXDFname)
mytbl <- tbl(sc, myXDFname)
现在用它做点什么
mytbl %>% head
mytbl %>%
filter(rlike(<txt col>, pattern)) %>%
group_by(something) %>%
tally() %>%
collect() %>% #this is important
ggplot(., aes(...)) %>%
geom_triforce(...)