用for循环定义pyspark数据结构变量时出错

vmdwslir  于 2023-03-28  发布在  Spark
关注(0)|答案(1)|浏览(95)

我想定义一组pyspark功能作为一个运行时变量(功能)。我尝试了下面的,它抛出一个错误。你能帮助这个吗

colNames = ['colA', 'colB', 'colC', 'colD', 'colE']  
tsfresh_feature_set = StructType(
      [
        
        StructField('field1', StringType(), True),     
        StructField('field2', StringType(), True),        
        StructField(item, DoubleType(), False) for item in colNames
        
      ]
    )

我得到的错误:

SyntaxError: invalid syntax
  File "<command-621368>", line 9
    StructField(item, DoubleType(), False) for item in colNames
                                             ^
SyntaxError: invalid syntax
sh7euo9m

sh7euo9m1#

您正在尝试使用列表解析来创建使用DataFrame的列名列表的结构

StructField(item, DoubleType(), False) for item in colNames

但问题在于语法:
1.使用[] Package 代码

[StructField(item, DoubleType(), False) for item in colNames]

1.使用*展开列表中的元素

colNames = ['colA', 'colB', 'colC', 'colD', 'colE']  
tsfresh_feature_set = StructType(
      [        
        StructField('field1', StringType(), True),     
        StructField('field2', StringType(), True),
        *[StructField(item, DoubleType(), False) for item in colNames]
      ]
    )

相关问题