Pyspark (Dataframes) считывает файл по строке (конвертировать строку в строку)
Мне нужно прочитать строку файла и разделить каждую строку на слова и выполнить операции над словами.
Как я могу это сделать?
Я написал следующий код:
logFile = "/home/hadoop/spark-2.3.1-bin-hadoop2.7/README.md" # Should be
some file on your system
spark = SparkSession.builder.appName("SimpleApp1").getOrCreate()
logData = spark.read.text(logFile).cache()
logData.printSchema()
logDataLines = logData.collect()
#The line variable below seems to be of type row. How I perform similar operations
on row or how do I convert row to a string.
for line in logDataLines:
words = line.select(explode(split(line,"\s+")))
for word in words:
print(word)
print("----------------------------------")
1 ответ
Я думаю, что вы должны применить map
функция для ваших строк. Вы можете применить что-либо в самостоятельно созданной функции:
data = spark.read.text("/home/spark/test_it.txt").cache()
def someFunction(row):
wordlist = row[0].split(" ")
result = list()
for word in wordlist:
result.append(word.upper())
return result
data.rdd.map(someFunction).collect()
Выход:
[[u'THIS', u'IS', u'JUST', u'A', u'TEST'], [u'TO', u'UNDERSTAND'], [u'THE', u'PROCESSING']]