キーと値のペアRDDに関する質問があります。キーと値のペアRDD
movie_horror_Conjuring.txt
movie_comedy_eurotrip.txt
movie_horror_insidious.txt
movie_sci-fi_Interstellar.txt
movie_horror_evildead.txt
私はSCを使用して、入力フォルダ内のファイルを読み込むしようとしています:
は、私は次のようにファイルの内容として、映画の中でダイアログを持っていC:/download/input
フォルダ内の5つのファイルを持っています。 wholeTextFiles()私はgroupByKey()
を使用して一緒にグループに各ジャンルの入力ファイルを私は持っている操作を実行しようとしてい
(C:/download/input/movie_horror_Conjuring.txt,values)
次のように私は、キー/値を取得します。すべてのホラー映画の価値、一緒のコメディ映画など。
私は
私が必要と(C:/download/input/movie_horror_Conjuring.txt,values)
(C:/download/input/movie_comedy_eurotrip.txt,values)
(C:/download/input/movie_horror_Conjuring.txt,values)
(C:/download/input/movie_sci-fi_Interstellar.txt,values)
(C:/download/input/movie_horror_evildead.txt,values)
次のように上記のコードは私に出力を与えている代わりに(C:/download/input/movie_horror_Conjuring.txt,values)
val ipfile = sc.wholeTextFiles("C:/download/input")
val output = ipfile.groupByKey().map(t => (t._1,t._2))
のキー/値のペアをこのよう(horror, values)
を生成することができますどのような方法があります
(horror, (values1, values2, values3))
(comedy, (values1))
(sci-fi, (values1))
私も試してみましたファイルの名前だけを取得するために、キーのフォルダパスを削除するいくつかのマップと分割操作を行いますが、ファイルに対応する値を追加することはできません。
また、私はラインがvalues1、values2、values3などで数える取得することができますどのように知っていただきたいと思い
私の最終的な出力があるべき
のような(恐怖、100)
ここで、100は、値1 = 40行、値2 = 30行、値3 = 30行の行数の合計です。
その作業は、ヘルプ – Ninja
ためのおかげで、更新の答えをチェックし@Ninja! – avr
素晴らしい!これも同様に機能します。 _ == '\ n'を使用するのではなく、分割しました。非常にありがとう – Ninja