使用Python寫spark 示例

2021-09-28 18:42:23 字數 1125 閱讀 5574

python寫spark我認為唯一的理由就是:你要做資料探勘,ai相關的工作。因為很多做數挖的他們的基礎語言都是python,他們如果重新學scala比較耗時,而且,python他的強大類庫是他的優勢,很多演算法庫只有python有。

python的安裝

解壓python包,在環境變數裡面配上bin的路徑

hadoop安裝

安裝hadoop環境 。在win下面需要winutils.exe;在環境裡面配置hadoop_home 即可

# -*- coding: utf-8 -*-

from __future__ import print_function

from pyspark import *

import os

print(os.environ['spark_home'])

print(os.environ['hadoop_home'])

if __name__ == '__main__':

sc = sparkcontext("local[8]")

rdd = sc.parallelize("hello pyspark world".split(" "))

counts = rdd \

.flatmap(lambda line: line) \

.map(lambda word: (word, 1)) \

.reducebykey(lambda a, b: a + b) \

.foreach(print)

sc.stop

問題1:

from pyspark import *

找不到pyspark。那你需要把spark的bin包下面的python的所有都拷貝到(可能需要解壓py4j)

%python%\lib\site-packages下面去。這樣,你的編輯器才能找到。

或者:

配置你的編輯器的環境變數:

pythonpath=f:\home\spark-1.6.0-bin-hadoop2.6\python;f:\python2.7\lib\site-packages

使用spark-submit提交時用到其他類庫 –py-files ***x/***x.zip,***x.py

ConcurrentHashMap使用示例

concurrenthashmap是併發效率更高的map,用來替換其他執行緒安全的map容器,比如hashtable和collections.synchronizedmap。實際上,併發執行時,執行緒安全的容器只能保證自身的資料不被破壞,但無法保證業務的行為是否正確。錯誤的理解這裡的執行緒安全,不恰...

Python使用type動態建立類操作示例

使用type動態建立類 動態語言和靜態語言最大的不同,就是函式和類的定義,不是編譯時定義的,而是執行時動態建立的。下面看乙個例子 定義乙個person類 class person object def init self pass def say self print say hello p per...

python使用 zip 同時迭代多個序列示例

zip 可以平行地遍歷多個迭代器 python 3中zip相當於生成器,遍歷過程中產生元祖,python2會把元祖生成好,一次性返回整份列表 zip x,y,z 會生成乙個可返回元組 x,y,z 的迭代器 x 1,2,3,4,5 y a b c d e z a1 b2 c3 d4 e5 for i ...