Присоединяйтесь к двум RDD, которые выдают пустые данные - PullRequest
0 голосов
/ 21 октября 2018

У меня есть две таблицы RDD, часть и части.

У них есть общий столбец joinKey.Я попытался объединить эти две таблицы, используя этот код:

part = sc.textFile("/data/tpch/data-001/part/")
parts = sc.textFile("/data/tpch/data-001/parts/")
joinedRDD = part.join(parts)

Однако, когда я пытаюсь отобразить joinRDD JoinRDD.take (3)

Я получаю обратно:

[(u'1', (u'|', u'|')), (u'1', (u'|', u'|')), (u'1', (u'|', u'|'))]

Что дает?

1 Ответ

0 голосов
/ 23 октября 2018

sc.textFile () возвращает RDD [String].Вам нужно проанализировать строку в массив, используя разбиение.Затем вам нужно преобразовать это значение ключа в rdd, а затем соединить их.

rdd = sc.textFile("path")
rddSplit = rdd.map(lambda l: l.split(delimiter))
rddKey = rddSplit.map(lambda l: l[keyIndex], l)
rddJoin = rddKey.join(rddKey)
...