sparkr基本操作1

2022-08-20 16:00:15 字數 2008 閱讀 7066

由於裝的sparkr是1.4版本的,老版本的很多函式已經不再適用了。

在2臺伺服器的組成的集群中測試了一版資料,熟悉下這個api的基本操作。​

libpath <- .libpaths()

libpath <- c(libpath, "/home/r/spark/spark-1.4.0-bin-hadoop2.4/r/lib")

.libpaths(libpath)

rm(libpath)

library(sparkr)

#沒有預設找到變數 需單獨設定,也可以在sparkr.init()裡設定

sys.setenv(spark_home="/home/r/spark/spark-1.4.0-bin-hadoop2.4/")

​#單主機啟動

sc <- sparkr.init()

#集群啟動

sc <- sparkr.init("spark://master機器ip:監聽埠")

#失效​

# sc <- sparkr.init(sparkpackages="com.databricks:spark-csv_2.11:1.0.3")

sqlcontext <- sparkrsql.init(sc)

df <- createdataframe(sqlcontext, iris)

t <- head(summarize(groupby(df, df$species), count=n(df$sepal_length), m=sum(df$sepal_length)))

#讀取資料將其轉為json格式 以便sparkr讀取​

pay.data <- read.table("/tmp/pay.dat", stringsasfactors = f, sep="\t")

names(pay.data) <- c("user", "money")

df.pay <- createdataframe(sqlcontext, pay.data)

#createdataframe函式在原始data.frame很大時基本被huang住,不知道是什麼原因

#   json <- tojson(pay.data[i, ])

write.table(json, file="/tmp/1.json", col.names = f, 

write.table(josn1, file="", col.names = f, row.names=f, quote = f)

pay1.json <- read.df(sqlcontext, "/home/r/spark/spark-1.4.0-bin-hadoop2.4/examples/src/main/resources/people.json",

"json")

#預設只支援預設只支援json和parquet 格式檔案,檔案需要在work伺服器上

pay.json <- read.df(sqlcontext, "/tmp/1.json",

"json")

pay.json$money1 <- cast(pay.json$money, "double")

#將資料按帳號匯**計後排序 輸出​

pay.account <- agg(groupby(pay.json, pay.json$user), money=sum(pay.json$money1),

num=n(pay.json$user))

pay.account1 <- arrange(pay.account, desc(pay.account$money), desc(pay.account$num))

write.df(pay.json, "/tmp/account1", "json")

分組統計了500w+的充值資料 並且排序後寫成json檔案到磁碟  時間是22s+​,比ddply要快,4700w耗時約26s,再大的資料暫時沒有統計了。

理解的很粗淺,sparkr適用於r無法統計的大批資料的預處理,可以將簡單預處理的彙總資料返回給r加以建模分析。其他還有待後續深入了解。

參考:1)​簡單介紹

2)常用函式

vim基本操作 1

第一課 1.移動游標 h 左移 j 下移 k 上移 l 右移 2.退出vim q 不儲存,強制退出 先按esc確保處於正常模式 wq 儲存後退出 3.刪除字元 x 刪除游標所在字元 4.插入文字 i 在正常模式下,按i鍵,在游標前插入字元 a 在正常模式下,按a在游標後插入字元 第二課 1.刪除類指...

protobuf基本操作1

最近領導分配了乙個任務,這個工程挺高階的,主要以前從沒有搞過,其中裡面有protobuf,以前從來沒有聽說過這個東西,最近在網上看了一些高人的帖子,才知道protobuf是什麼云云了,我的理解是,例如我們要用c 寫個什麼工程,c 是物件導向的,我們要寫很多類,估計都得寫上上百行,上千行的 但是現在用...

linux基本操作 1

ctrl d 鍵盤輸入結束或者退出終端 ctrl s 暫定當前程式,按任意鍵恢復 ctrl z 將當前程式放入後台執行 fg 恢復放入後台的程式到前台 ctrl a 到當前行首,相當於home ctrl e 到當前行尾,相當於end ctrl k 刪除從游標尾到行末 ctrl backspace 向...