下のスパークジョブの出力からかっこ "("と ")"を削除するにはどうすればよいですか?RDDの[(String、Int)]でsaveAsTextFileを実行したときに、レコードの前後に括弧を削除するにはどうすればよいですか?
PigScriptを使用してスパーク出力を読み込もうとすると、問題が発生します。
私のコード:コード上記のとおり
scala> val words = Array("HI","HOW","ARE")
words: Array[String] = Array(HI, HOW, ARE)
scala> val wordsRDD = sc.parallelize(words)
wordsRDD: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at parallelize at <console>:23
scala> val keyvalueRDD = wordsRDD.map(elem => (elem,1))
keyvalueRDD: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[1] at map at <console>:25
scala> val wordcountRDD = keyvalueRDD.reduceByKey((x,y) => x+y)
wordcountRDD: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[2] at reduceByKey at <console>:27
scala> wordcountRDD.saveAsTextFile("/user/cloudera/outputfiles")
出力:
hadoop dfs -cat /user/cloudera/outputfiles/part*
(HOW,1)
(ARE,1)
(HI,1)
しかし、私は、スパークの出力は括弧なしとして、次のように格納したい
HOW,1
ARE,1
HI,1
今、私はPigScriptを使って上記の出力を読みたいと思います。私は適用しないように、第2の原子として
がとにかくあります「(第一原子と」1として、我々はスパークコード自体の中に括弧をオフに取り除くことができますどのように「)」Pigscript扱いで
LOAD文pigscriptで、このために修正..
豚スクリプト:
records = LOAD '/user/cloudera/outputfiles' USING PigStorage(',') AS (word:chararray);
dump records;
豚出力:
((HOW)
((ARE)
((HI)