有没有一种方法可以用列表中的列名创建一个空模式?

时间:2019-04-24 12:33:19

标签: pyspark

在以前不存在的情况下,我正在尝试制作一个空的PySpark数据框。我也有一个列名列表。是否可以在没有手动分配的情况下定义一个空的PySpark数据框?

我有一个列final_columns的列表,可以用来从数据框中选择列的子集。但是,如果此数据框不存在,我想在final_columns中创建一个具有相同列的空数据框。我想这样做而无需手动分配名称。

final_columns = ['colA', 'colB', 'colC', 'colD', 'colE']

try:
    sdf = sqlContext.table('test_table')
except: 
    print("test_table is empty")
    mySchema = StructType([ StructField("colA", StringType(), True),
                            StructField("colB", StringType(), True),
                            StructField("colC", StringType(), True),
                            StructField("colD", StringType(), True),
                            StructField("colE", DoubleType(), True) ])
    sdf = sqlContext.createDataFrame(spark.sparkContext.emptyRDD(),schema=mySchema)

sdf = sdf.select(final_columns)

0 个答案:

没有答案