2015-11-30 5 views
-2

Я сделал много работы, чтобы удалить символы из вывода искрового питона, как u u 'u "[() /'", которые создают проблему для меня, чтобы выполнить дальнейшую работу. Поэтому, пожалуйста, сосредоточьтесь на том же.Удаление символов из вывода python

У меня есть вход, как,

(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") 
+0

Каков результат вашего кода? – Trilarion

+0

Этот код предназначен для агрегирования результата на основе выходного вывода ключа, но он содержит некоторый uu 'u "[() /'" chracter, который я хочу удалить. Результат подобен (u '(u "(u \ '[54879, 5125478 \' "', 0.0) (u' [25145, 25145879 '", 11.0), поэтому я хочу удалить все символы и хочу получить результат, например 54879,5125478,0,0 25145, 25145879,11.0 –

ответ

1

Я думаю, что ваша единственная проблема в том, что у вас есть переформатировать результат, прежде чем сохранять его в файле, то есть примерно так:

result.map(lambda x:x[0]+','+str(x[1])).saveAsTextFile("hdfs://localhost:9000/Test1") 
+0

Спасибо, но он дает мне ошибку, result.map (lambda x: x [0] + ',' + x [1]). SaveAsTextFile ("hdfs: // localhost: 9000/Test1") ТипError: принуждение к Unicode: нужна строка или буфер, найдено float –

+0

Это потому, что 'x [1]' - это float: вам нужно преобразовать его в строку. Я обновил ответ соответственно – mgaido

+0

Still/u'u ") (приходят .. –

Смежные вопросы