#pyspark
#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)
Комментарии:
1. вы можете перебирать имена, но вам также понадобится список типов данных. как мы должны знать, что
colE
это единственная схема, которая не является строкой?2. Мы этого не знаем, но полезно знать, чтобы перебирать имена. Я создам пустой фрейм данных с циклами, а затем вручную выберу, чтобы изменить тип для конкретных столбцов. Спасибо!