我正在尝试运行以下代码。它给我一个GC错误。我试着在没有reduceByKey的情况下运行这个程序,代码运行正常。我猜reduce函数占用了很多内存。我试着增加驱动程序内存,内核数量,执行器内存。我还尝试了groupByKey而不是reduceByKey。但运气不好
但我所理解的是,我没有释放变量是做错了什么。有人能帮我吗
import os
import sys
import unicodedata
from operator import add
try:
from pyspark import SparkConf
from pyspark import SparkContext
except ImportError as e:
print ("Error importing Spark Modules", e)
sys.exit(1)
# delimeter function
def findDelimiter(text):
sD = text[1]
eD = text[2]
return (eD, sD)
def tokenize(text):
sD = findDelimiter(text)[1]
eD = findDelimiter(text)[0]
arrText = text.split(sD)
text = ""
seg = arrText[0].split(eD)
arrText=""
senderID = seg[6].strip()
yield (senderID, 1)
conf = SparkConf()
sc = SparkContext(conf=conf)
textfile = sc.textFile("hdfs://my_IP:9000/data/*/*.txt")
rdd = textfile.flatMap(tokenize)
rdd = rdd.reduceByKey(lambda a,b: a+b)
textfile=""
rdd.coalesce(1).saveAsTextFile("hdfs://my_IP:9000/data/total_result503")
rdd=""
目前没有回答
相关问题 更多 >
编程相关推荐