python - 如何在 PySpark 中创建空 Spark DataFrame 并附加数据?
问题描述
我的任务是将 for 循环生成的多个 Spark DataFrame 组合在一起。所以我想在运行for循环之前创建一个空的DataFrame,然后通过UnionAll将它们组合起来。result
是从 for 循环生成的数据帧的名称。
下面是代码:
empty = sqlContext.createDataFrame(sc.emptyRDD(), StructType([]))
empty = empty.unionAll(result)
以下是错误:
first table has 0 columns and the second table has 25 columns
看起来我必须在创建空的 Spark DataFrame 时指定特定的架构。我想知道是否有一种方法可以让它在不这样做的情况下工作,或者只是结合 Spark DataFrames。我确实有很多列要另外指定。
提前致谢!
解决方案
由于您的empty
数据框没有任何列,因此当我们这样做时,unionAll
我们需要具有相同数量的列。
尝试通过创建empty dataframe
然后result dataframe schema
执行unionAll。
Example:
result=spark.createDataFrame([(1,2,3,4)],['id','a','b','c'])
empty = sqlContext.createDataFrame(sc.emptyRDD(), result.schema)
empty.unionAll(result).show()
#+---+---+---+---+
#| id| a| b| c|
#+---+---+---+---+
#| 1| 2| 3| 4|
#+---+---+---+---+
推荐阅读
- ios - UITapGesture 不适用于堆栈视图中的 xib 文件
- node.js - GCP 云功能:找不到 npm 模块
- oauth-2.0 - 使用 Microsoft Graph 时的无效身份验证令牌
- r - 如何使用 r 中的管道工在同一请求中返回图像和数据
- java - 进度计数未显示 100%
- node.js - Nodemon 错误:已达到文件观察者数量的系统限制
- javascript - 使用 JavaScript 为事件侦听器添加冷却时间
- c# - 自动代理切换器 WInform (C#)
- django - 我们可以在 Django 的 models.py 中定义数据库名称吗?
- vba - 如何从 OneNote 表格中获取数据到 Outlook 宏?