Мой входных наборов данных выглядитreduceBykey Спарк поддержания порядка
id1, 10, v1
id2, 9, v2
id2, 34, v3
id1, 6, v4
id1, 12, v5
id2, 2, v6
и я хочу выход
id1; 6,v4 | 10,v1 | 12,v5
id2; 2,v6 | 9,v2 | 34,v3
Это такое, что
id1: array[num(i),value(i)] where num(i) should be sorted
То, что я пробовал:
Получить идентификатор и 2-й столбец в качестве ключа,
sortByKey
, но так как это строка, сортировки не бывает, как межды, но как строкаПолучить 2-й столбец в качестве ключа,
sortByKey
, а затем получить идентификатор и ключ и 2 колонка в стоимостном выражении,reduceByKey
. Но в этом случае, делаяreduceByKey
; порядок не сохраняется. ДажеgroupByKey
не мешает заказу. На самом деле это ожидается.
Любая помощь будет оценена по достоинству.
Большое спасибо @ zero323 – user2200660
Большое спасибо @ zero323. Результатом rdd является «» RDD [(String, List [(Int, String)])] «« Можете ли вы также рассказать мне, как преобразовать этот RDD в «RDD [(String, String)]». Таким образом, в основном ваш вывод «" (id1, List ((6, v4), (10, v1), (12, v5))) ", но мне нужно" "(id1; 6, v4 | 10, v1 | 12, v5) "" – user2200660
Несомненно, проверьте изменения. – zero323