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和表工作。