scala spark 埋点统计_spark—1:WordCount(Python与Scala对照)
生活随笔
收集整理的這篇文章主要介紹了
scala spark 埋点统计_spark—1:WordCount(Python与Scala对照)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
spark是一種基于rdd的彈性分布式數(shù)據(jù)集的計算框架軟件。
官方提供scala接口,Python接口,以及java接口。
這里提供scala和Python的兩種版本的對照代碼,會持續(xù)更新下去。
歡迎關(guān)注。
scala版本package com.chen.spark import org.apache.spark.SparkConf import org.apache.spark.SparkContextobject WordCount {def main(args : Array[String]) : Unit = {// 獲取scval sparkConf = new SparkConf().setAppName("wordcount").setMaster("local")val sc = new SparkContext(sparkConf)val data = sc.textFile("hdfs://localhost:9000/user/datatest/word.txt", 1)// 讀取hdfs 文件,1為最小并行度,讀hdfs和hive表有默認值,一般讀本地文件才設(shè)置// 詞頻統(tǒng)計的主函數(shù)val dataRDD = data.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)dataRDD.foreach(word => println(word._1 + ":" + word._2))sc.stop()} }python# -*- coding:UTF-8 _*__init_ from pyspark import SparkConf from pyspark import SparkContextdef CreateSparkContext():sparkConf = SparkConf().setAppName("wordcont_py").set("spark.ui.showConsoleProgress", "false")sc = SparkContext(conf = sparkConf) # 不同于scala,這里必須指定conf來傳參print("master =" + sc.master)return scif __name__ == "__main__":print("開始執(zhí)行詞頻統(tǒng)計")sc = CreateSparkContext()data = sc.textFile("hdfs://localhost:9000/user/datatest/word.txt")dataRDD = data.flatMap(lambda line : line.split(" ")) .map(lambda word : (word, 1)) .reduceByKey(lambda x, y : x + y)# 執(zhí)行動作算子,返回list嵌套tuple類型data_list = dataRDD.collect()print("詞頻統(tǒng)計結(jié)果")# 不同于scala Python版本的foreach無法執(zhí)行printfor i in data_list: print(str(i[0]) + ":" + str(i[1]))sc.stop()scala輸出結(jié)果Python輸出結(jié)果
總結(jié)
以上是生活随笔為你收集整理的scala spark 埋点统计_spark—1:WordCount(Python与Scala对照)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt串口采用队列_基于STM32的RGB
- 下一篇: c# mysql 管理员权限_C# wi