Поскольку вы хотите, чтобы все столбцы были StringType()
, определите схему следующим образом:
from pyspark.sql.types import StructType, StructField, StringType
column_names = "ColA|ColB|ColC"
mySchema = StructType([StructField(c, StringType()) for c in column_names.split("|")])
Теперь просто передайте пустой список в качестве данных вместе с этой схемой spark.createDataFrame()
:
df = spark.createDataFrame(data=[], schema=mySchema)
df.show()
#+----+----+----+
#|ColA|ColB|ColC|
#+----+----+----+
#+----+----+----+
Теперь вы можете использовать эту схему и для других фреймов данных.