设为首页 加入收藏

TOP

Spark介绍(六)SparkR
2019-04-09 13:05:55 】 浏览:67
Tags:Spark 介绍 SparkR

一、SparkR简介

SparkR是一个R语言包,它提供了轻量级的方式使得可以在R语言中使用ApacheSpark。在Spark1.4中,SparkR实现了分布式的data frame,支持类似查询、过滤以及聚合的操作(类似于R中的data framesdplyr),但是这个可以操作大规模的数据集

DataFrame是数据组织成一个带有列名称的分布式数据集,R语言中的data frame类似,需先配置SparkContextSQLContext

sc<-sparkR.init() 
sqlContext<-sparkRSQL.init(sc)

Spark2.0之后的初始化,直接在spark/bin目录下启动./sparkR即可初始化“SparkSession available as 'spark'”

二、构造DataFrame

1通过本地data frame构造,createDataFrame(sqlConetx,data frame), as.DataFrame(data frame);

data(iris)
df <- as.DataFrame(iris)
head(df)
#  Sepal_Length Sepal_Width Petal_Length Petal_Width Species
#1          5.1         3.5          1.4         0.2  setosa
#2          4.9         3.0          1.4         0.2  setosa
#3          4.7         3.2          1.3         0.2  setosa
#4          4.6         3.1          1.5         0.2  setosa
#5          5.0         3.6          1.4         0.2  setosa
#6          5.4         3.9          1.7         0.4  setosa

2通过Data Sources构造:JSONParquet文件等;

##加载本地json文件
## /tmp/people.json
#{"name":"Michael"}
#{"name":"Andy", "age":30}
#{"name":"Justin", "age":19}
people <- read.df("file:///tmp/people.json", "json")
head(people)
#  age    name
#1  NA Michael
#2  30    Andy
#3  19  Justin
printSchema(people)
#root
# |-- age: long (nullable = true)
# |-- name: string (nullable = true)

##加载本地parquet文件
users <- read.df("file:///tmp/users.parquet", "parquet")
printSchema(users)
#root
# |-- name: string (nullable = true)
# |-- favorite_color: string (nullable = true)
# |-- favorite_numbers: array (nullable = true)
# |    |-- element: integer (containsNull = true)

## 加载本地的csv文件
people <- read.df("file:///tmp/people.csv", "csv", header = "true", inferSchema = "true", na.strings = "NA")

注:文件路径去掉file://即可加载hdfs上的文件

3通过Hive tables构造,创建HiveContext(spark2.0已统一为sparkSession, 不用再加载)

##注意用户的权限问题
sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")
sql("LOAD DATA LOCAL INPATH '/tmp/kv1.txt' INTO TABLE src")

# Queries can be expressed in HiveQL.
results <- sql("FROM src SELECT key, value")

# results is now a SparkDataFrame
head(results)
##  key   value
## 1 238 val_238
## 2  86  val_86
## 3 311 val_311

三、SparkDataFrame操作

可以对创建对DataFrame进行各种操作,比如查询列、行等,也可以进行分组统计聚合操作,还可以对列的数据进行操作,详细的API列表可以见官方SparkR的API

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇IBM如何拥抱Spark 下一篇大数据之   spark介绍和基本..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目