当用方括号括起来时,foreach循环前的变量意味着什么(PySpark)

2024-04-24 20:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我仍然处于学习pyspark的初始阶段,我发现下面的代码令人困惑。可以 有人,请给我解释一下

     Code  :    
    zipsSchema = smartphoneDF.schema
    print(type(zipsSchema))
    [**field** for field in zipsSchema]

  What does "field" before "for"  mean, and why is the entire statement enclosed in "[]" When I try to write the same 

    My code is as follows :

 zipsSchema = smartphoneDF.schema
    print(type(zipsSchema))
   for field in zipsSchema 
     print(field)

1条回答
网友
1楼 · 发布于 2024-04-24 20:49:27

field是来自zipsSchema结构类型的元素

我们可以使用python中的[field for field in zipsSchema]islist comprehension在单行中编写for循环,而不是创建空列表和列表中的附加元素

Example:

smartphoneDF=spark.createDataFrame([("1","a")],["id","name"])

zipsSchema=smartphoneDF.schema

fields_lc=[field for field in zipsSchema]
#[StructField(id,StringType,true), StructField(name,StringType,true)]

fields_fl=[]

for field in zipsSchema:
    fields_fl.append(field)

fields_fl
#[StructField(id,StringType,true), StructField(name,StringType,true)]

正如您所看到的fields_lcfields_fl值是相同的,创建是不同的

相关问题 更多 >