Extracting keywords from 3 billion CSV records
def fileparser_worker(filename, start, end, c):
    with open(filename) as inFile, open(outName + str(c),'w') as outFile:
            inFile.seek(start)
            #lines = inFile.readlines(end-start)


because readlines calls readline multiple times it can be replaced with
read.  

If the text should be split by newline and each split line should be splitted by a tab character, there are two ways to do it depending on the input text.  

    for title in (line.split('\t') for line inFile.read(end-start).splitlines()):  


Here title is list of strings.  

Another one is to call str.split() or str.split(None) in which case the string is split by white spaces (space, tab or newline), this is best if it's ok to split by space character or the text has no space character.

    for title in inFile.read(end-start).split():  


Here the title is string.  

If the read().split() becomes a memory hog, I think a generator will give
better result.  

    #def get_title():
    #   yield next((line.split('\t') for line inFile.read(end-start).splitlines()))

    for title in (line.split('\t') for line inFile.read(end-start).splitlines()):  
        try:
            keywords = rake.execute_rake(title[2])
        except:
            print('Index out of bound error due to NULL Values')
            continue


If we could build a sequence of strings out of keywords we can call
writelines straight.  

        else:
            outFile.writelines((keyword[0] + '\n' for keyword in keywords))


~