开发者社区> 问答> 正文

使用嵌套的不同模式联合两个数据帧

Dataframe1看起来像这样

root
|-- source: string (nullable = true)
|-- results: array (nullable = true)
| |-- content: struct (containsNull = true)
| | |-- ptype: string (nullable = true)
| | |-- domain: string (nullable = true)
| | |-- verb: string (nullable = true)
| | |-- foobar: map (nullable = true)
| | | |-- key: string
| | | |-- value: string (valueContainsNull = true)
| | |-- fooId: integer (nullable = true)
|-- date: string (nullable = false)
|-- hour: string (nullable = false)
Dataframe 2如下所示:

root
|-- source: string (nullable = true)
|-- results: array (nullable = true)
| |-- content: struct (containsNull = true)
| | |-- ptype: string (nullable = true)
| | |-- domain: string (nullable = true)
| | |-- verb: string (nullable = true)
| | |-- foobar: map (nullable = true)
| | | |-- key: string
| | | |-- value: string (valueContainsNull = true)
|-- date: string (nullable = false)
|-- hour: string (nullable = false)
注意差异 - fooId第二个数据帧中没有。我如何将这两个数据帧结合在一起?我知道这两个模式需要与union相同。添加fooId或删除的最佳方法是什么fooId?(由于模式的结构,非常重要)建议使用此类联合的方法是什么。

展开
收起
社区小助手 2018-12-06 11:55:15 2370 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    使用DF1和DF2两个Dataframe,可以删除DF1中的额外列并运行两个数据帧的中断

    // this is to remove the extra column in the dataframe
    DF1.drop("fooId")
    现在两个DF都具有相同的列数,因此你可以进行联合

    DF1.union(DF2)

    2019-07-17 23:18:30
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
重新定义计算的边界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载