У меня есть 300 маленьких csv
файлов (по 10-100 МБ каждый). Я хочу обрабатывать каждый файл независимо. Для каждой строки файла я хочу подсчитать вхождения значения столбца в следующие 20000 строк и использовать его в качестве метки для строки. Я думаю о работе по обработке этих файлов одновременно, чтобы ускорить это. Это то, что я могу сделать со Spark, или я должен попробовать использовать что-то другое? Большинство применений Spark, по-видимому, предназначены для обработки данных как одного большого набора данных, и я не уверен, возможен ли мой вариант использования.
input: directory of files d
concurrently for each file in d:
for each row r in file:
count where r['a'] == x['a'] for x in next 20,000 rows
add this count as a column 'label' in row r
output: same files, but with extra column 'label'
Пример (взгляд вперед на 2 строки вместо 20 000):
Input:
file1: [('a':'pen', 'b':'apple'), ('a':'bike', 'b':'apple'), ('a':'pen', 'b':'bike')]
file2: [('a':'chair', 'b':'apple'), ('a':'chair', 'b':'pen'), ('a':'chair', 'b':'pen')]
Output:
file1: [('a':'pen', 'b':'apple', 'label': 2), ('a':'bike', 'b':'apple', 'label':0), ('a':'pen', 'b':'pen', 'label':0)]
file2: [('a':'chair', 'b':'apple', 'label':3), ('a':'chair', 'b':'pen', 'label':0), ('a':'chair', 'b':'pen', 'label':0)]