apache-spark - 将数据附加到空数据框
问题描述
我正在创建一个空数据框,然后尝试将另一个数据框附加到该数据框。事实上,我想根据即将到来的 RDD 的数量动态地将许多数据帧附加到最初的空数据帧。
如果我将值分配给另一个第三个数据帧,则 union() 函数可以正常工作。
val df3=df1.union(df2)
但我想继续附加到我创建的初始数据帧(空),因为我想将所有 RDD 存储在一个数据帧中。然而,下面的代码没有显示正确的计数。似乎它根本没有附加
df1.union(df2)
df1.count() // this shows 0 although df2 has some data and that is shown if I assign to third datafram.
如果我执行以下操作(我得到重新分配错误,因为 df1 是 val。如果我将其更改为 var 类型,我会得到 kafka 多线程不安全错误。
df1=d1.union(df2)
知道如何将所有动态创建的数据框添加到一个最初创建的数据框吗?
解决方案
不确定这是否是您要找的东西!
# Import pyspark functions
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
# Define your schema
field = [StructField("Col1",StringType(), True), StructField("Col2", IntegerType(), True)]
schema = StructType(field)
# Your empty data frame
df = spark.createDataFrame(sc.emptyRDD(), schema)
l = []
for i in range(5):
# Build and append to the list dynamically
l = l + [([str(i), i])]
# Create a temporary data frame similar to your original schema
temp_df = spark.createDataFrame(l, schema)
# Do the union with the original data frame
df = df.union(temp_df)
df.show()
推荐阅读
- azure - 无法在 Azure 政府云中导入 Key Vault 证书
- mysql - 如何使用在 docker 中运行的 wordpress 和 mysql 解决“建立数据库连接时出错”
- python - 在 Python 中通过线程/核心/节点并行化 for 循环
- pandas - matplotlib(或哪个 matplotlib api)何时自动将 Pandas 时间戳转换为 matplotlib 日期?
- javascript - 在 JSON 对象中查找值?
- javascript - 'Doc' 在 IE11 中未定义
- python - 通过网状结构的 Pairgrid 无法按预期工作
- git - 如何解决“拒绝合并不相关的历史”?我试过“git pull origin master --allow-unrelated-histories”
- javascript - 查询选择器所有“显示:无;”的元素
- python - 如何从python中的顺序变量创建数字类别?