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 ...