SparkR概述
SparkR R包提供了一個輕量級的前端使用Apache火花從R . SparkR還支持使用MLlib分布式機器學習。
SparkR在筆記本
對於火花2.0及以上,您不需要顯式地通過
sqlContext
每一個函數調用的對象。火花2.2及以上,筆記本電腦不再進口SparkR默認情況下因為SparkR函數與類似的命名衝突的功能與其他流行的包。使用SparkR可以調用
庫(SparkR)
在你的筆記本電腦。SparkR會話已經配置,和所有SparkR功能將與你連接集群使用現有的會話。
創建SparkR DataFrames
您可以創建一個DataFrame從本地Rdata.frame
從一個數據源,或者使用一個火花的SQL查詢。
從本地Rdata.frame
最簡單的方法來創建一個DataFrame是把當地的Rdata.frame
成一個SparkDataFrame
。具體我們可以使用createDataFrame
並通過在當地Rdata.frame
創建一個SparkDataFrame
。像大多數其他SparkR函數一樣,createDataFrame
2.0語法改變了火花。你可以看到這樣的例子在波紋管的代碼片段。更多的例子,請參閱createDataFrame。
圖書館(SparkR)df< -createDataFrame(忠實的)#顯示DataFrame的內容發送到stdout頭(df)
使用API的數據源
一般的方法創建一個DataFrame從數據源read.df
。這個方法取文件的路徑加載和數據源的類型。SparkR支持閱讀CSV、JSON、文本和拚花文件本身。
圖書館(SparkR)diamondsDF< -read.df(“/ databricks-datasets / Rdatasets /數據- 001 / csv / ggplot2 / diamonds.csv”,源=“csv”,頭=“真正的”,inferSchema=“真正的”)頭(diamondsDF)
SparkR自動推斷模式從CSV文件。
添加一個數據源連接器與火花包
通過火花包你可以找到數據源連接器Avro等流行的文件格式。作為一個例子,使用spark-avro包加載一個Avro文件。spark-avro包取決於您的集群的可用性圖片的版本。看到Avro文件。
先一個現有的data.frame
火花DataFrame轉換,並將其保存為一個Avro文件。
需要(SparkR)irisDF< -createDataFrame(虹膜)write.df(irisDF,源=“com.databricks.spark.avro”,路徑=“dbfs: / tmp / iris.avro”,模式=“覆蓋”)
驗證一個Avro文件保存:
%fsls/tmp/iris.avro
現在使用spark-avro包再讀回數據。
irisDF2< -read.df(路徑=“/ tmp / iris.avro”,源=“com.databricks.spark.avro”)頭(irisDF2)
數據源API也可以用來保存DataFrames分成多個文件格式。例如,您可以保存DataFrame從前麵的示例文件使用拚花write.df
。
write.df(irisDF2,路徑=“dbfs: / tmp / iris.parquet”,源=“鋪”,模式=“覆蓋”)
% fs ls dbfs: / tmp / iris.parquet
DataFrame操作
火花DataFrames支持大量的結構化數據處理功能。這裏有一些基本的例子。一個完整的列表中可以找到API文檔。
選擇行和列
#進口SparkR包,如果這是一個新的筆記本需要(SparkR)#創建DataFramedf< -createDataFrame(忠實的)
#隻選擇“噴發”列頭(選擇(df,df美元火山噴發))
#你還可以通過在列名作為字符串頭(選擇(df,“爆發”))
#過濾器DataFrame隻保留行與等待時間短於50分鍾頭(過濾器(df,df美元等待<50))
機器學習
SparkR暴露大部分MLLib算法。在引擎蓋下,SparkR使用MLlib火車模型。
下麵的例子展示了如何構建一個使用SparkR漠視高斯模型。進行線性回歸,建立家庭“高斯”
。運行邏輯回歸,建立家庭“二”
。當使用SparkML GLM SparkR自動執行一個炎熱的編碼分類特性,這樣就不需要手動完成的。字符串和雙類型特性之外,還可以配合在MLlib矢量特性,與其他MLlib組件的兼容性。
#創建DataFramedf< -createDataFrame(虹膜)#符合線性模型的數據集。模型< -全球語言監測機構(Sepal_Length~Sepal_Width+物種,數據=df,家庭=“高斯”)#模型係數類似的格式返回到R的本機全球語言監測機構()。總結(模型)
教程,請參閱SparkR毫升教程。
附加的例子,請參閱在R DataFrames和表工作。