這篇文章給大家分享的是有關(guān)windows安裝spark及PyCharm IDEA調(diào)試TopN的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、做網(wǎng)站、尼河口網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、尼河口網(wǎng)絡(luò)營銷、尼河口企業(yè)策劃、尼河口品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供尼河口建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
安裝spark第一步就是安裝jdk(無論windows還是linux),spark執(zhí)行依賴jdk。在oracle官網(wǎng)上下載jdk,這里我選擇的是8u74 windows x64版本,你也可以根據(jù)自己的需求下載,jdk的安裝在此不表,無非就是下一步,選安裝路徑什么的。
在Apache Spark?官方網(wǎng)站下載spark,選擇spark-1.6.0-bin-hadoop2.6.tgz。
添加spark環(huán)境變量,在PATH后面追加:
%SPARK_HOME%\bin
%SPARK_HOME%\sbin
windows 環(huán)境下的spark搭建完畢!?。?/p>
注意此處有坑:
Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
spark雖然支持standalone模式,并且不依賴hadoop。但是在windows環(huán)境下還是需要hadoop的這個(gè)winutils.exe。因此需要下載2.6版本匹配的winutils.exe. 可以google "hadoop.dll 2.6" 或在此下載(hadoop dll winutils.exe,GitHub各種版本都有), 將下載后的文件覆蓋至hadoop的bin目錄(沒有的話需要建個(gè)目錄,并設(shè)置相應(yīng)hadoop環(huán)境HADOOP_HOME及PATH環(huán)境變量)。
spark支持scala、python和java,由于對(duì)python的好感多于scala,因此開發(fā)環(huán)境是Python。
下面開始搭建python環(huán)境:
2.7或3.5均可,安裝過程在此不表,安裝完成后在環(huán)境變量里添加PYTHONPATH,這一步很重要:
如果配置正確,打開python自帶的IDE,輸入以下代碼,然后等待連接成功的消息即可:
from pyspark import SparkConf, SparkContext conf = SparkConf().setMaster("local").setAppName("MY First App") sc = SparkContext(conf = conf)
也可以手動(dòng)啟動(dòng)測(cè)試下:
spark-class.cmd org.apache.spark.deploy.master.Master spark-class.cmd org.apache.spark.deploy.worker.Worker spark://localhost:7077
# coding=utf-8 # 測(cè)試utf-8編碼 from __future__ import division import decimal from pyspark import SparkConf, SparkContext, StorageLevel import sys reload(sys) sys.setdefaultencoding('utf-8') conf = SparkConf().setMaster("local").setAppName("CSDN_PASSWD_Top10") sc = SparkContext(conf=conf) file_rdd = sc.textFile("H:\MySQL\csdn_database\www.csdn.net.sql") passwds = file_rdd.map(lambda line: line.split("#")[1].strip()).map(lambda passwd: (passwd, 1)).persist( storageLevel=StorageLevel.MEMORY_AND_DISK_SER) passwd_nums = passwds.count() top10_passwd = passwds.reduceByKey(lambda a, b: a + b).sortBy(lambda item: item[1], ascending=False).take(10) for item in top10_passwd: print item[0] + "\t">
代碼如下:
C:\Users\username>spark-shell scala> val textFile = spark.read.textFile("C:\\Users\\username\\Desktop\\parse_slow_log.py") textFile: org.apache.spark.sql.Dataset[String] = [value: string] scala> textFile.count() res0: Long = 156 scala> textFile.first() res1: String = # encoding: utf-8 scala> val linesWithSpark = textFile.filter(line => line.contains("Spark")) linesWithSpark: org.apache.spark.sql.Dataset[String] = [value: string] scala> textFile.filter(line => line.contains("Spark")).count() res2: Long = 0 scala> textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b) res3: Int = 27 scala> val wordCounts = textFile.flatMap(line => line.split(" ")).groupByKey(identity).count() wordCounts: org.apache.spark.sql.Dataset[(String, Long)] = [value: string, count(1): bigint] scala> wordCounts.collect() res4: Array[(String, Long)] = Array((self.slowlog,1), (import,3), (False,,1), (file_name,,1), (flag_word,3), (MySQL,1), (else,1), (*,2), (slowlog,1), (default=script_path),1), (0,4), ("",2), (-d,1), (__auther,1), (for,5... scala
感謝各位的閱讀!關(guān)于“windows安裝spark及PyCharm IDEA調(diào)試TopN的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!