当前位置:  开发笔记 > 编程语言 > 正文

如何创建一个空的DataFrame?为什么"ValueError:RDD为空"?

如何解决《如何创建一个空的DataFrame?为什么"ValueError:RDD为空"?》经验,为你挑选了3个好方法。



1> Ton Torres..:

扩展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()    


与命令spark.createDataFrame([[)])相同的结果

2> Joe Widen..:

在写这个答案的时候,看起来你需要某种架构

from pyspark.sql.types import *
field = [StructField("field1", StringType(), True)]
schema = StructType(field)

sqlContext.createDataFrame(sc.emptyRDD(), schema)



3> braj..:

这适用于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)

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有