如何将此代码转换为 for 循环格式?
Posted
技术标签:
【中文标题】如何将此代码转换为 for 循环格式?【英文标题】:How can I convert this code to for loop format? 【发布时间】:2019-06-09 10:22:08 【问题描述】:我想修改这段代码以使用“for”循环:
df = spark.createDataFrame([(0,prosecced_text[0]), (1,prosecced_text[1]),.. ,(100,prosecced_text[100]) ], ["id", "items"])
100 是prosecced_text
列表的长度。
【问题讨论】:
【参考方案1】:一般来说,我建议使用列表推导来创建类似于您需要的列表的内容,但是您需要的特定元组列表正是 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)
,它将起作用。
【讨论】:
【参考方案2】: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)
【讨论】:
以上是关于如何将此代码转换为 for 循环格式?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 将 CSV 文件数据转换为 JSON 格式