02を使用するスパークScalaの対話型の単語頻度統計[]

私たちは、CentOS7で火花をインストールして、このセクションでは、火花を経由してScalaの単語頻度の統計情報をやり取りする方法を示します。

1つのシステム、ソフトウェア、および前提制約

  • CentOSの7マシンのIPの64台のワークステーションは192.168.100.200、ホスト名danjiで、読者は自分の実際の状況に応じて設定されています
  • Hadoopのがインストールされ、開始されています
    https://www.jianshu.com/p/b7ae3b51e559
  • 火花がインストールされ、開始されています
    https://www.jianshu.com/p/8384ab76e8d4
  • 操作の影響を除去するための許可は、すべての操作をルートするために行われています

2操作

  • 1. 192.168.100.200 xshellにrootでログインします
  • 2. HDFSにアップロードされ、いくつかの文字列を入力して、新しいファイルを作成します。
# 进入hadoop的bin目录
cd /root/hadoop-2.5.2/bin
# 编辑word,加入以下内容,保存退出
I am zhangli
I am xiaoli
who are you
I am ali
hello jiangsu wanhe
wanhe
# 上传word到HDFS
./hdfs dfs -put word /word
# 查看
./hdfs dfs -cat /word
  • 3. [コマンドラインを刺激します
# 进入spark的命令目录
cd /root/spark-2.2.1-bin-hadoop2.7/bin
# 进入spark命令行
./spark-shell
  • 次のコマンドラインの対話を行うためのスパークコマンド4.
#创建一个上下文环境,以HDFS的/word作为输入
scala > val textFile = sc.textFile("/word")
#统计/word共有多少行
scala > textFile.count()
#打印/word内容
scala > textFile.collect().foreach(println)
#过滤哪些行包含"I"
scala > val linesWithSpark = textFile.filter(line => line.contains("I"))
#包含"I"总共有多少行
scala > linesWithSpark.count()
#统计单词频率
scala > val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
#打印统计结果
scala > wordCounts.collect()

上記は、Scalaの間で火花による対話形式で単語​​頻度の統計です。

ます。https://www.jianshu.com/p/92257e814e59で再現

おすすめ

転載: blog.csdn.net/weixin_33696106/article/details/91051978