Пометить файлы независимо и одновременно в Spark - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть 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)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...