2023-10-08 22:05来源:m.sf1369.com作者:宇宇
spark是一种分布式内存计算模型
hadoop是一种大数据分布式处理方案,包括hdfs(分布式存储系统),mapreduce(分布式计算框架),yarn(资源调度系统)
hive是基于hadoop的一个数据仓库,构建成类似传统关系型数据库。能够用sql执行mr任务
spark与hadoop关系,spark是内存计算框架,意味着他主要是用来进行计算,用来取代hadoop的mapreduce任务效率太低。但是计算结果,数据源,最终还是存在hadoop上的
2down votefavorite
I have a stacked data frame
a <- c(1,1,1,1,2,2,3,3,3,3,3,4,4,4,4)
b <- c(200,201,201,200,220,220,200,220,203,204,204,203,220,200,200)
d <- c(500,500,500,500,500,501,501,501,501,501,502,502,502,502,502)
f <- c(G,G,M,M, G,G,M,M,M,G,M,G,M,G,G)
df <- data.frame(a,d,b,f)
I use dcast from reshape2 to unstack the data as follows
dcast(df,a+d+b ~ f)
a d b G M
1 1 500 200 1 1
2 1 500 201 1 1
3 2 500 220 1 0
4 2 501 220 1 0
5 3 501 200 0 1
6 3 501 203 0 1
7 3 501 204 1 0
8 3 501 220 0 1
9 3 502 204 0 1
10 4 502 200 2 0
11 4 502 203 1 0
12 4 502 220 0 1
It defaults to length since I have not put any aggregating function. What I would like however is to get
a d b col_1 col_2
1 500 200 G M
1 500 201 G M
2 500 220 G NA
...and so on
Receiver-based的Kafka读取方式是基于Kafka高阶(high-level) api来实现对Kafka数据的消费。在提交Spark Streaming任务后,Spark集群会划出指定的Receivers来专门、持续不断、异步读取Kafka的数据,读取时间间隔以及每次读取offsets范围可以由参数来配置。读取的数据保存在Receiver中,具体StorageLevel方式由用户指定,诸如MEMORY_ONLY等。当driver 触发batch任务的时候,Receivers中的数据会转移到剩余的Executors中去执行。在执行完之后,Receivers会相应更新ZooKeeper的offsets。
是rdd的一个特殊的类型, 相当于RDD[Row], 这个row 代表了查询结果的每一条数据, 类似于数据库的每一条查询结果都是一个row对象。