扩展Joe Widen的答案,你实际上可以创建没有字段的模式:
schema = StructType([])
所以当你使用它作为你的架构创建DataFrame时,你最终会得到一个DataFrame[]
.
>>> empty = sqlContext.createDataFrame(sc.emptyRDD(), schema) DataFrame[] >>> empty.schema StructType(List())
在Scala中,如果您选择使用sqlContext.emptyDataFrame
并签出架构,它将返回StructType()
.
scala> val empty = sqlContext.emptyDataFrame empty: org.apache.spark.sql.DataFrame = [] scala> empty.schema res2: org.apache.spark.sql.types.StructType = StructType()
在写这个答案的时候,看起来你需要某种架构
from pyspark.sql.types import * field = [StructField("field1", StringType(), True)] schema = StructType(field) sqlContext.createDataFrame(sc.emptyRDD(), schema)
这适用于Spark 2.0.0或更高版本
from pyspark.sql import SQLContext sc = spark.sparkContext schema = StructType([StructField('col1', StringType(), False),StructField('col2', IntegerType(), True)]) sqlContext.createDataFrame(sc.emptyRDD(), schema)