【发布时间】:2015-11-30 12:19:03
【问题描述】:
我做了很多工作来从 spark python 输出中删除字符,例如 u u' u" [()/'",这给我做进一步的工作带来了问题。所以请把重点放在同样的地方。
我有这样的输入,
(u"(u'[25145, 12345678'", 0.0)
(u"(u'[25146, 25487963'", 43.0) when i applied code to summing out the result. this gives me the output like
(u'(u"(u\'[54879, 5125478\'"', 0.0)
(u"(u'[25145, 25145879'", 11.0)
(u'(u"(u\'[56897, 22548793\'"', 0.0) so i want to remove all the character like (u'(u"(u\'["'')
我想要像
这样的输出54879,5125478,0.0
25145,25145879,11.0
我尝试的代码是
from pyspark import SparkContext
import os
import sys
sc = SparkContext("local", "aggregate")
file1 = sc.textFile("hdfs://localhost:9000/data/first/part-00000")
file2 = sc.textFile("hdfs://localhost:9000/data/second/part-00000")
file3 = file1.union(file2).coalesce(1).map(lambda line: line.split(','))
result = file3.map(lambda x: ((x[0]+', '+x[1],float(x[2][:-1])))).reduceByKey(lambda a,b:a+b).coalesce(1)
result.saveAsTextFile("hdfs://localhost:9000/Test1")
【问题讨论】:
-
你的代码的结果是什么?
-
此代码用于根据即将到来的关键输出聚合结果很好,但它包含一些我想要删除的 u u' u" [()/'" 字符。输出就像 (u '(u"(u\'[54879, 5125478\'"', 0.0) (u"(u'[25145, 25145879'", 11.0)。所以我想删除所有字符并希望输出像 54879,5125478 ,0.0 25145,25145879,11.0
标签: python apache-spark