作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<分区>
如何从以下 spark 作业的输出中删除括号“(”和“)”?
当我尝试使用 PigScript 读取 spark 输出时,它产生了一个问题。
我的代码:
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)
但我希望 spark 的输出存储如下,不带括号
HOW,1
ARE,1
HI,1
现在我想使用 PigScript 读取上面的输出。
Pigscript 中的 LOAD 语句将“(HOW”视为第一个原子,将“1)”视为第二个原子
我们是否可以去掉 spark 代码本身的括号,因为我不想在 pigscript 中应用此修复程序..
pig 脚本:
records = LOAD '/user/cloudera/outputfiles' USING PigStorage(',') AS (word:chararray);
dump records;
pig 输出:
((HOW)
((ARE)
((HI)
这个问题在这里已经有了答案: How to remove parentheses around records when saveAsTextFile on RDD[(String, Int)]?
我是一名优秀的程序员,十分优秀!