Как я могу преобразовать этот код в формат цикла? - PullRequest
2 голосов
/ 09 июня 2019

Я хочу изменить этот код, чтобы использовать цикл for:

df = spark.createDataFrame([(0,prosecced_text[0]),  (1,prosecced_text[1]),.. ,(100,prosecced_text[100]) ], ["id", "items"])

100 - длина списка prosecced_text.

Ответы [ 3 ]

1 голос
/ 09 июня 2019

В общем, я бы посоветовал использовать понимание списка, чтобы создать что-то вроде нужного вам списка, но конкретный список кортежей, который вам нужен, это именно то, что производит enumerate (но мы должны использовать выводиз enumerate путем явного построения из него list для получения фактического списка):

df = spark.createDataFrame(list(enumerate(prosecced_text)), ["id", "items"])

Что делает enumerate, так это возвращает итератор, который выдает (index,value) кортежей, где indexначинается с 0 по умолчанию, а value - это каждый соответствующий элемент повторяемого элемента, передаваемый в enumerate.

В соответствии с удаленным комментарием @ pault конкретным методом spark.createDataFrame принимает любой тип итерации в качестве первого аргумента, поэтому вам даже не нужен включающий вызов list в указанном выше конкретном случае.Это будет просто работать, если вы передадите enumerate(prosecced_text) напрямую.

0 голосов
/ 09 июня 2019
from pyspark.ml.fpm import FPGrowth
# create empty list buffer_list
buffer_list = []
for x in range(101):
    buffer_list.append((x,prosecced_text[x]))


df = spark.createDataFrame(buffer_list, ["id", "items"])
fpGrowth = FPGrowth(itemsCol="items", minSupport=0.5, minConfidence=0.6)
model = fpGrowth.fit(df)
0 голосов
/ 09 июня 2019

Вы можете использовать комбинацию для приращений in + id

from pyspark.ml.fpm import FPGrowth

temp = []
id = 0

for item in prosecced_text:
    temp.append((id, item))
    id += 1

df = spark.createDataFrame(temp, ["id", "items"])
fpGrowth = FPGrowth(itemsCol="items", minSupport=0.5, minConfidence=0.6)
model = fpGrowth.fit(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...