Husky中文文档-PyHusky 运算符

Pyhusky Operators

PyHusky支持三种运算符: LoadTransformation, 和 Action.

通畅情况下,一个PyHusky程序首先使用Load运算符.

PyHusky 采用lazy evaluation技术, 所有 Loads 和 Transformations 的运算将会被推迟,以避免不必要的计算和提高性能。 Action 操作才会真正触发计算。

因此一个应用程序需确保以 Load 操作开始,并以 Action 结束。

Transformations 分为两类: simple transformations 和 shuffle transformations。Simple transformations不会导致网络传输,但shuffle transformations会.

Loads

以下为PyHusky支持的 Load 操作符。PyHusky应用程序需要包含 env 包以便使用这些运算。

  • load(url) :从HDFS中加载数据,使用LineInputFormat(每行成为PyHuskyList的一个元素),返回一个PyhuskyList。

  • parallelize(list): 将一个Python list划分到不同机器上,返回PyHuskyList。

Transformations

以下为PyHusly支持的 Transformation 操作符。

Simple transformations

  • map(func):对已有的PyHuskylist的每一个元素进行函数操作,并返回一个新的PyHuskyList。

  • flat_map(func):和map 函数类似,但每个原元素可以被映射成零个或多个输出元素(func应该返回一个list而不是一个元素)。

  • filter(func):返回一个经过func筛选后的新的PyHuskyList。

  • concat(pyhuskylist):拼接两个PyHuskyList, 并返回一个新的PyHuskyList。

  • map_partition(func):对于每个PyHuskyList数据分片(一个python列表)的所有元素执行func函数,并返回新的PyHuskyList。

Shuffle transformations

  • distinct():返回一个不含重复元素的PyHuskyList。

  • reduce_by_key(func):对由(k, v)对组成的PyHuskyList按照k分组,对每个分组执行func函数聚集v(如求和)。

  • group_by_key():接收由(k, v)对组成的PyHuskyList,按照k进行分组,返回由(k, [v1...])组成的PyHuskyList

  • count_by_key():接收由(k, v)对组成的PyHuskyList,按照k进行分组,计数每个k有多少个对,返回由(k, num)对组成的PyHuskyList

  • difference(other_pyhuskylist):返回一个不包含other_pyhuskylist元素的新PyHuskyList。

Actions

以下为PyHusly支持的 Action 操作符。

  • reduce(func):按照func聚集函数聚集所有PyHuskyList中的元素,返回一个最终值。

  • cache():缓存所有PyHuskyList中的元素。

  • uncache():取消对PyHuskyList中元素的缓存。

  • write_to_hdfs(url):将PyHuskyList中的全部元素写出到HDFS的url目录里面。

  • count():返回一个PyHuskyList包含的元素个数。

  • collect():收集各个PyHuskyList分片的数据,返回到前端。

  • empty():返回true如果该PyHuskyList不含任何元素,否则返回false。

  • topk(k, key=None, reverse=False):返回PyHuskyList的前k个元素。

  • output():输出PyHuskyList中的全部元素到前端控制台。

  • foreach(func):对PyHuskyList中的每一个元素实施func函数操作

待开发的操作符...

  • sample(N)take(N)unionintersectjoincartesian...

Husky应用库

以下为PyHusky支持的各类应用。

PageRank

  • from_edgelist(pyhuskylist):接收由(src, dst)对组成的PyHuskyList创建一个图。

  • pagerank(num_iters):计算一个图进行PageRank的计算,迭代num_iters次。

  • topk(k):得到一个图top-k的PageRank值

例子:

pr = pagerank.from_edgelist(edgelist)
pr.compute(iter=10)
pr.topk(5)

你可能感兴趣的:(大数据,Pyhusky)