Andy 胡

导航

Spqrk笔记

LSM:Least square method 最小二乘法

ALS:Alternating Least Squares 交替最小二乘法

 

 

http://blog.csdn.net/dreamer2020/article/details/51030795
读(读到的不是一个字符串!是一行一行的字符串!·文本的行的集合)
val lines = sc.textFile("file:///path_to_local/file")
val lines = sc.textFile("hdfs:///path_to_hdfs/file")





rdd.saveAsTextFile("hdfs://")

读写parquet格式文件(得到一个DataFrame):
val parquetFile = sqlContext.read.parquet("people.parquet")
df.write.save("temp.parquet")

JSON格式文件
val df = sqlContext.read.json("path to json file")
val df = sqlContext.read.format("json").load("path to file")
df.write.format("json").save("path to save")

RDD:Resilient Distributed Datasets:弹性分布式数据集
可操作的数据集合

spark统计字符数
val lines = sc.textFile("data.txt") //读文件,得到以行字符串为单位的RDD
val lineLengths = lines.map(s => s.length) //转换,将字符串元素映射为其长度
val totalLength = lineLengths.reduce((a, b) => a + b) //动作,将所有元素加起来


最常用的转换操作有两个:map和filter
map(func)是将func应用到所有元素,得到一个新的RDD。
filter是将func返回为true的元素过滤出来,组成一个新的RDD。

一些比较常用的转换如下:

map(func) 返回一个新的分布式数据集,将数据源的每一个元素传递给函数 func 映射组成。
filter(func) 返回一个新的数据集,从数据源中选中一些元素通过函数 func 返回 true。
flatMap(func) 类似于 map,但是每个输入项能被映射成多个输出项(所以 func 必须返回一个 Seq,而不是单个 item)。
union(otherDataset) 两个RDD求并集
intersection(otherDataset) 两个RDD求交集
groupByKey() 作用于(K,V)的数据集,依据K对值进行归并,返回一个(K, Iterable)
reduceByKey(func)
作用于(K,V)的数据集,依据K对值使用func进行归约,返回一个(K,V)数据集
sortByKey([asending]) 返回一个依据K进行排序的数据集

最常用的动作就是reduce,将数据集归约为一个结果。一些比较常用的动作如下:
reduce(func) 按照func函数对数据集进行归约,func接受两个参数,返回一个结果,须满足结合律和交换律,以便于分布式计算。
count() 返回数据集的元素个数
first() 返回第一个元素
take(n) 以数组形式返回集合的前n个元素
saveAsTextFile(path) 将数据集保存为文本文件

posted on 2017-03-06 15:59  talkwah  阅读(192)  评论(0编辑  收藏  举报