Как найти MIN и MAX каждого столбца для rdd, используя Map / Reduce или любым другим способом - PullRequest
0 голосов
/ 02 мая 2019

Я прочитал почти 100 файлов CSV в одну СДР.

rdd=sc.textFile("file:///C:/Users\pinjala/Documents/Python Scripts/Files_1/*.csv")

Я хочу найти минимальное и максимальное значения для каждого столбца в СДР. Почти 100 столбцов.

Может кто-нибудь предложитьКак я могу найти Мин и макс для СДР для разных столбцов.

Когда я использовал rdd.collect(), я могу видеть rdd в виде списка, содержащего имена столбцов в первом элементе и значения каждого столбца в остальных элементахв списке.

rdd=sc.textFile("file:///C:/Users\pinjala/Documents/Python Scripts/Files_1/*.csv")

1 Ответ

0 голосов
/ 03 мая 2019

Будет лучше, если вы дадите несколько образцов данных. Во всяком случае, я только что симулировал и вот код-

new_list = []
list_p = [['John',19,1,9,20,68],['Jack',3,2,5,12,99]] #list of tuple
rdd = sc.parallelize(list_p) #Build a RDD
print(rdd.collect()) # [['John', 19, 1, 9, 20, 68], ['Jack', 3, 2, 5, 12, 99]]
for p in list_p:
    header = p[0]
    p.remove(p[0]) 
    min_p = sc.parallelize(p).min()
    max_p = sc.parallelize(p).max()
    new_list.append("["+header+","+str(min_p)+","+str(max_p)+"]")
print(new_list) # ['[John,1,68]', '[Jack,2,99]']
...