У меня есть РД, где список строк являются [ «ABC», «ПЗС-», «хуга» ... «AXD»]Как Транспонирование РДА в pyspark (список не является матрицей)
Когда я «печатаю rdd.take (2), я ожидаю, что он вернет меня ['abc', 'ccd'], но вместо этого он дает мне все. Я очень новичок в искры или питоне, поэтому, пожалуйста, простите меня, если это немой вопрос. есть способ перенести этот список строк?
в конце концов, мне нужно, чтобы преобразовать это в dataframe и вставить в улей таблицу.
Вот пайса моего кода
domainsrdd = zonerdd.reduceByKey(lambda x,y: x + ' ' + y).map(lambda a: (a[0], a[1].split(' ')))
print domainsrdd.take(2)
[(u'COOL', [u'shirtmaker.cool', u'videocandy.cool', u'the-happy-factory.cool', u'vic.cool', u'atl.cool',...... u'booze.cool'])]
def sampler(l, tldvar):
tld = l[0]
domain_data = l[1]
domains = []
ct = tldvar.value[tld]
for item in domain_data:
domains.extend([item])
if len(domains) == ct:
break
return domains
domainslist = domainsrdd.map(lambda l: sampler(l, tldvar))
print domainslist.take(2) # still returns everything
[[u'shirtmaker.cool', u'videocandy.cool', u'the-happy-factory.cool',...])]
Короче говоря, я пытаюсь выполнить петлю через набор доменов, сгруппированных по tld и создавая образец этих доменных имен, tldvar - это словарь, который имеет набор доменов, которые мне нужно вернуть для определенного tld. TLD = com, net, org и т. Д.!
take (n) всегда возвращает первые n элементов набора данных. Возможно, вы вызвали метод collect(), поскольку весь набор данных, кажется, был возвращен. Не могли бы вы добавить пример кода в свой пост? – kkaosninja
Только что обновил форматирование –